繁体   English   中英

如何在iframe下加载的网页上禁用所有JS事件

[英]How to disable all JS events on a webpage loaded under iframe

我有一个网页,其中包含JS click / mouseover / mouseout / scroll事件,并且它也没有几个JS库来加载轮播,引导模式弹出窗口等。

我想停止该元素上的所有事件。

我成功取消了html上的一些单击事件的绑定,但是无法取消绑定用于滑动轮播/显示引导弹出窗口等的第三方JS的事件。

我尝试使用:

window.onload = function(){
    var anchors = document.getElementsByTagName("a");
    for(var a in anchors){
        anchors[a].onclick = function(e){
            e.preventDefault();
        }
    }

    var divs = document.getElementsByTagName("div");
    for(var d in divs){

        if (divs[d].removeEventListener) {
          console.log("click removed eee"); 
          // For all major browsers, except IE 8 and earlier
            divs[d].removeEventListener("click", function(){ console.log("click removed"); });
        } else if (divs[d].detachEvent) {                    // For IE 8 and earlier versions
          console.log("click detached eee"); 
            divs[d].detachEvent("click", function(){ console.log("click detached"); });
        }
    }
};

锚重定向成功停止。 但是,div上的点击事件仍然有效。 请帮我解决如何停止网页上的所有事件绑定。

google的运作方式如下?

https://www.google.com/webmasters/markup-helper/tagger?sourceId=104528819

在那里下载了该页面的结尾,使用iframe呈现了该页面并取消了所有事件的绑定。 他们可能做了什么?

您没有提到这样的事情,iframe中的内容是来自另一个域还是来自相同域?

假设您的iframe内容不是来自其他域。 那么下面是适合您的解决方案。

document.getElementById('edit').contentWindow.addEventListener('keypress', cK, true);

有关更多详细信息,请参见this

让我知道您的观点。 谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM