javascript - 使用 javascript 替换 onpage javascript

标签 javascript replace

我对 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/

相关文章:

javascript - jQuery 正则表达式通过子字符串查找字符串

javascript - jQuery UI Slider 拒绝显示自定义句柄

javascript - 单击编辑按钮时,stackoverflow 如何格式化文本区域?

javascript - jQuery 2.x 如何唯一标识一个元素(在 .data() 中)

c++ - 搜索/替换 boost 正则表达式 C++

regex - sed:替换包含模式的行

javascript - 用一个动画切换两个字段

javascript - 函数未通过 href 中的 javascript 调用

jQuery 在悬停时替换元素的文本

jQuery 将列表中的图像源替换为下一个图像源,并从最后开始