var iframe = $('<iframe></iframe>').attr({id:'iframe', width:'200',height:'200', border:'1'});
$(document.body).append(iframe);
$('#iframe').attr({src:'doc-iframe.php'});
$('#iframe').load(function(){
$('<div></div>', this.contentWindow.document).append(function(){
$(this).append('<form name="test" id="test">
<input name="name" value="Serban"><input type="submit"></form>
<sc'+'ript>console.log(window); document.test.submit();</sc'+'ript>');
});
});
上面的代码在http://test.local/doc.html页面上执行 它试图将一些内容加载到:
<iframe id="iframe" src="doc-iframe.php"></iframe>
问题是 document.test.submit()未在#iframe的上下文中执行,文档指向 doc.html 而不是 doc -iframe.php 即可。
如何在#iframe?
的上下文中执行此代码考虑到append()中的HTML代码是我无法控制的html AJAX响应的结果。
答案 0 :(得分:0)
当你使用jQuery使用iFrame时,你应该像这样引用它:
$(this).contents().append(...)
我不知道这是否有帮助,但你的问题不是很明确......
答案 1 :(得分:0)
使用上下文选择器将iframe指定为目标:
document.title = $("form#test", frames[0].document).submit();
使用等式检查来标识上下文节点:
console.assert($(this).get(0) === $(frames[0]).get(0), "not the iframe", $(this).get(0) );
<强>参考强>