javascript - javscript - 从从第三方源加载的 js 中删除字符串代码
问题描述
我正在尝试捕获单击事件并且它工作正常,但是 JS 阻止了一些链接来捕获单击事件。
代码如下:
(function() {
var layer = document.getElementById("Layer");
if (layer) {
var listen = function(obj, e, fn) {
if (obj.addEventListener) { obj.addEventListener(e, fn, false); } else { obj.attachEvent("on"+e, fn); }
};
listen(layer, 'click', function (evt) {
evt.stopPropagation();
try { evt.cancelBubble(); } catch (e) { /* ignore */ }
window.open(window.clickTag, '_blank');
});
}
})();
所以我可以例如删除代码或覆盖stopPropagation
evt.stopPropagation();
try { evt.cancelBubble(); }
使用我自己的 JS 代码。我尝试使用以下方法访问 js 代码:
var iframe = document.getElementsByTagName('iframe')[0];
iframe.addEventListener('load', function(event){
console.log("iframe Loaded", event);
});
在浏览器控制台中,我可以看到日志:
Event {isTrusted: true, type: "load", target: iframe, currentTarget: iframe, eventPhase: 2, …}
bubbles: false
cancelBubble: false
cancelable: false
composed: false
currentTarget: null
defaultPrevented: false
eventPhase: 0
isTrusted: true
path: Array(9)
0: iframe
1: a
2: div.banner2
3: div.col-lg-8.col-md-8.col-sm-12.col-xs-12
4: div.row
5: div.container
6: body
7: html
8: document
更新:当我尝试喜欢
iframe.contentWindow.addEventListener('click', function (e)
我收到如下错误。那么有什么方法可以在 Iframe 窗口上监听事件。
Uncaught DOMException: Blocked a frame with origin "mysite.com" from accessing a cross-origin frame. at HTMLIFrameElement
解决方案
推荐阅读
- javascript - 如何将复杂的字符串拆分为数组?
- javascript - 如何通过过滤器在具有行跨度的表中进行搜索
- fabricjs - Fabricjs v2.4.1 loadFromJSON 从 v1.7.17 生成的图像缩放问题
- facebook - 将应用程序公开后发布到页面不起作用
- asp.net - Asp net core api 循环实体未显示在循环结果中
- android - 应用程序在启动时崩溃,我查看了代码但没有得到任何东西
- c# - 如何使用 cefSharp 离线浏览器将 SSO 连接修复到自签名 PC 托管的网络服务器?
- math - 在 Rust 中使用类型系统强制坐标边界
- c# - 创建具有 N 个分区的 Kafka 主题
- scala - Spark Scala读取数据中有逗号的CSV