我对 javascript 还很陌生,所以请放轻松,
我的网页上有此代码:
<script type="text/javascript"> bb1 = "oldcode"; bb2 = "morecodehgere"; bb3 = 160000;</script>
我想将所有页面加载的 1% 的旧代码替换为新代码
同一页面上有多个此代码实例,我想将它们全部替换。
window.onload = replaceScript;
function replaceScript() {
var randomNumber = Math.floor(Math.random()*101);
var toReplace = 'oldcode';
var replaceWith ='newcode';
if randomNumber == 1 {
document.body.innerHTML = document.body.innerHTML.replace(/toReplace/g, replaceWith);
}
}
这是我当前的代码,但它不起作用。
javascript 是实现我想要做的事情的最简单方法吗?如果是这样,最好的方法是什么?
最佳答案
正则表达式文字:
/toReplace/g
将创建一个与字符串“toReplace”匹配的正则表达式对象。如果要创建正则表达式来匹配变量 toReplace
的(字符串)值,则必须使用 RegExp 构造函数:
var re = new RegExp(toReplace, 'g');
用正文的innerHTML 本身的副本替换正文的innerHTML 并不是一个好主意。 innerHTML 属性不一定反射(reflect) DOM 的所有细微差别,并且不会包含动态添加的监听器之类的内容。它也因浏览器而异。
使用正则表达式替换部分innerHTML几乎肯定会产生不可预测的结果,它可能在简单的页面上运行良好,但在复杂的页面上就不可靠。
关于javascript - 使用 javascript 替换 onpage javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20160112/