1

我想动态加载一个 javascript 文件并撤消对我网站上的静态 javascript 所做的操作。我想要编辑的静态 javascript document.getElementsByTagName('script')[3]这就是我想要做 document.getElementsByTagName('script')[3].attributes[2].value = "http://differentlocation.com/jsfile.js" 的:事情是当源被改变时,我希望我静态缓存的所有其他函数都消失。这怎么可能?

*改写。网站当前的 javascript 附加事件处理程序并执行各种功能,我想让所有这些都消失。基本上我正在重新加载一个几乎完全相同的 javascript 副本,并且不希望某些处理程序处于活动状态。等等 或者有没有办法清除所有页面当前的javascript,让它全部无用,然后加载我的新javascript

4

2 回答 2

2

看起来你没有使用 jQuery。如果你是,这行简单的代码应该从文档中的每个元素中删除所有事件处理程序:

$("*").off();

可能值得探索。

于 2013-07-28T23:52:13.380 回答
1

我无法让 JavaScript 再次运行,很可能是:它需要链接(jsFiddle 不允许)。这是一个演示

在此示例中,我们有三个按钮。

<button id="myButton">Add an event listener for the bellow</button>
<button id="listener">Do something</button>
<button id="reset">reset</button>

然后我们可以添加事件监听器,

// Do some stuff
document.getElementById("myButton").addEventListener("click", function () {
    document.getElementById("listener").addEventListener("click", function () {
        alert("I do something!");
    });
});

...在某个时候,重置页面。这是通过将当前 HTML 内容从页面中取出并将其存储在变量中来实现的。然后我们将其放回原处,从而删除所有与元素的绑定。它还具有不运行内联脚本的有害副作用。

// Soft reload of the page
document.getElementById("reset").addEventListener("click", function () {
    var html = document.documentElement.innerHTML;
    document.documentElement.innerHTML = "";
    document.documentElement.innerHTML = html;
});
于 2013-07-28T23:39:57.190 回答