我页面上的代码停止 运行 页面上的代码
Code on my page stops code on page from running
我正在尝试获取一个脚本来用不同的文本和 link 替换我页面上的文本。没有代码,页面工作正常,我可以执行添加到购物车、查找产品编号(由鼠标悬停命令驱动)等操作。代码工作正常,它将文本替换为 link,但是当我插入代码时,该页面不再运行用户输入后的任何代码(即查找产品编号)。
知道为什么这会破坏我的页面吗?
window.addEventListener ?
window.addEventListener("load",Name,false) :
window.attachEvent && window.attachEvent("onload",Name);
function Name(){
if (document.getElementsByTagName('body')[0].innerText.indexOf("Text") >
-1) {
var Var1 = document.getElementsByTagName('body')[0].innerHTML;
var Var2 = Var1.replace(/Text/gi,"<a href =
\"https://www.example.com\">NewText;</a>");
document.getElementsByTagName('body')[0].innerHTML = Var2;
}
}
我最初使用的是 document.onload,我已经尝试过 window.onload 和其他几个事件处理程序,所有这些也都破坏了页面。我读到附加 onload 是执行此操作的正确方法,并将其合并到您在此处看到的代码中,但是我采取的这些步骤中的 none 已经解决了问题。
所以事实证明替换正文的 innerHTML 会阻止我的页面(出于未知原因......这是一个方形空间网站)在加载后 运行 任何代码。因此,上面的代码有效(尽管存在一些语法问题),但破坏了页面。
我通过 class 定位页面上更具体的元素来解决这个问题,这需要一些猜测和检查才能找到包含我的元素的正确元素(同样,很难破译方形空间),但一切现在工作正常。
工作代码:
window.addEventListener ?
window.addEventListener("load",FuncName,false) :
window.attachEvent && window.attachEvent("onload",FuncName);
function FuncName(){
if (document.getElementsByTagName('body')[0].innerHTML.indexOf("word") > -1)
{
var Var1 = document.getElementsByClassName('ClassName');
for (var i = 0; i < Var1.length; i++){
var Var2 = document.getElementsByClassName('ClassName')[i].innerHTML;
var Var3 = Var2.replace(/word/gi,"<a href =
\"http://www.example.com\">NewWord</a>");
document.getElementsByClassName('ClassName')[i].innerHTML =
Var3;
我不得不添加一个循环来覆盖我在不同 classes 中寻找的单词的多个实例,但是你去吧。希望这可以帮助遇到类似问题的人。
我正在尝试获取一个脚本来用不同的文本和 link 替换我页面上的文本。没有代码,页面工作正常,我可以执行添加到购物车、查找产品编号(由鼠标悬停命令驱动)等操作。代码工作正常,它将文本替换为 link,但是当我插入代码时,该页面不再运行用户输入后的任何代码(即查找产品编号)。
知道为什么这会破坏我的页面吗?
window.addEventListener ?
window.addEventListener("load",Name,false) :
window.attachEvent && window.attachEvent("onload",Name);
function Name(){
if (document.getElementsByTagName('body')[0].innerText.indexOf("Text") >
-1) {
var Var1 = document.getElementsByTagName('body')[0].innerHTML;
var Var2 = Var1.replace(/Text/gi,"<a href =
\"https://www.example.com\">NewText;</a>");
document.getElementsByTagName('body')[0].innerHTML = Var2;
}
}
我最初使用的是 document.onload,我已经尝试过 window.onload 和其他几个事件处理程序,所有这些也都破坏了页面。我读到附加 onload 是执行此操作的正确方法,并将其合并到您在此处看到的代码中,但是我采取的这些步骤中的 none 已经解决了问题。
所以事实证明替换正文的 innerHTML 会阻止我的页面(出于未知原因......这是一个方形空间网站)在加载后 运行 任何代码。因此,上面的代码有效(尽管存在一些语法问题),但破坏了页面。
我通过 class 定位页面上更具体的元素来解决这个问题,这需要一些猜测和检查才能找到包含我的元素的正确元素(同样,很难破译方形空间),但一切现在工作正常。
工作代码:
window.addEventListener ?
window.addEventListener("load",FuncName,false) :
window.attachEvent && window.attachEvent("onload",FuncName);
function FuncName(){
if (document.getElementsByTagName('body')[0].innerHTML.indexOf("word") > -1)
{
var Var1 = document.getElementsByClassName('ClassName');
for (var i = 0; i < Var1.length; i++){
var Var2 = document.getElementsByClassName('ClassName')[i].innerHTML;
var Var3 = Var2.replace(/word/gi,"<a href =
\"http://www.example.com\">NewWord</a>");
document.getElementsByClassName('ClassName')[i].innerHTML =
Var3;
我不得不添加一个循环来覆盖我在不同 classes 中寻找的单词的多个实例,但是你去吧。希望这可以帮助遇到类似问题的人。