我想在本地jQuery对话框中制作跨域iframe内容。当我在同一应用程序中开发它时,一切都很好。当我尝试使用另一个URL上的另一个应用程序对其进行测试时,我会收到错误:
Error: Permission denied to access property ...
我知道,安全策略存在问题,但是我需要在框架内进行选择。
让我告诉你我的工作:
foo/plugin.js:
var framedom; 功能FRAMELOADED(){ for(var i = 0; i< window.frames.length; i ){ if(window.frames [i] .name ==" frame-name-here"){ framedom = window.frames [i] .document; 休息; } } } $(function(){ var frame ="< iframe src ='http://bar:222/home/frame'id ='frame-content'name ='frame-name-here'onload ='frameLoaded()'/>"; $("#对话框形式")。对话框({autoopen:true,高度:450,宽度:500,模态:true,resizizable:false,false,false 纽扣: { "交付":function(){//这里有一些长代码 } } 创建:函数(event,ui){ $(this).append(帧); } });
加载帧后,我可以轻松地访问框架内的内容:
$("#frame-input", frameDOM).val();
有了跨域,我失去了这种可能性。是否有其他方法可以控制选择器损失框架,从另一个域中取出?
P.S.我不需要调整框架大小,该解决方案没有帮助。我正在寻找其他方法,因为这是不起作用的。
不幸的是,除非您可以通过PHP或其他一些脚本语言抓住HTML(可能是在PHP中使用curl),然后将其传递给您的JavaScript应用程序,从同一域将其传递给您的JavaScript应用不可能。请参阅相同的原始策略。