我想在本地 jquery 对话框中制作跨域 iframe 内容。当我在同一个应用程序中开发它时,一切都很好。当我尝试使用另一个 url 在另一个应用程序上测试它时,我收到错误:
Error: Permission denied to access property ...
我知道,安全策略存在问题,但我需要在框架内进行选择。
让我向您展示我的工作:
foo/plugin.js:
变量框架DOM; 功能框架加载(){ for (var i = 0; i < window.frames.length; i++) { if (window.frames[i].name == "frame-name-here") { frameDOM = window.frames[i].document; 休息; } } } $(函数(){ var frame = "<iframe src='http://bar:222/Home/frame' id='frame-content' name='frame-name-here' onload='frameLoaded()' />"; $("#dialog-form").dialog({ autoOpen: true, height: 450, width: 500, modal: true, resizable: false, 纽扣: { "Deliver": function () { //这里有些长代码 } } 创建:函数(事件,用户界面){ $(this).append(frame); } });
加载框架后,我可以轻松访问框架内的内容:
$("#frame-input", frameDOM).val();
跨域我失去了这种可能性。是否有其他方法可以控制取自另一个域的选择器内框?
PS我不需要调整框架大小,该解决方案没有帮助。我正在寻找替代方法,因为这个方法不起作用。