Javascript 使用JQuery检测iframe事件
我有以下ajax代码:Javascript 使用JQuery检测iframe事件,javascript,jquery,html,iframe,Javascript,Jquery,Html,Iframe,我有以下ajax代码: function send(obj) { var paket = { Url: obj } $.ajax({ url: 'submit', type: 'POST', dataType: 'json', contentType: "application/json; charset=utf-8", data: JSON.stringify(paket),
function send(obj) {
var paket = {
Url: obj
}
$.ajax({
url: 'submit',
type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
data: JSON.stringify(paket),
success: function (data) {
var iframe = document.getElementById('frame');
var html = data.msg;
iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html);
renderat = true;
$('frame').ready(function () {
console.log("laddad");
test();
});
},
error: function (data) {
}
})
}
这很好,它在我的iframe中呈现html:
<iframe width="600" height="600" id="frame"></iframe>
问题是它只运行到console.log0,然后什么也没有发生。。为什么?我怀疑问题在于我不知道如何将这个jquery代码放入$document.ready
有什么建议吗?感谢就绪在iframe上作为选择器无效,请使用加载事件
用户说它运行到日志中的“0”——因此正在调用测试——因此无需使用该负载。@Leon建议您仔细阅读ready的工作原理。它引用已经处于就绪状态的主页面如果您想从DOM获取事件,除了DOM-TS想要处理DOM上的click事件外,是否加载了所有或任何元素都无关紧要,因此就绪是好的。由于调用了Console.Log“0”,因此已触发就绪事件。还是我搞错了?@Leon是的,你搞错了,OP正在尝试访问iframe中的一个新DOM,在加载之前你无法访问它谢谢你的响应,当前代码如下:$'frame'。加载时,函数{$iframe.mouseoverfunction event{alert$event.target;}; }; 它不允许我添加.contentWindow-然后它会向我抛出一个安全错误,即使一切都发生在我自己的计算机上。很可能“framen”是空的,也会在控制台中转储它-另请参见:
function test() {
if (renderat == true) {
console.log("0");
var framen = document.getElementById('frame').contentWindow;
$(framen).click(function (event) {
alert($(event.target).val());
});
}
}
$('#frame').on('load',function () {
console.log("laddad");
test();
});