1

我想在本地 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我不需要调整框架大小,该解决方案没有帮助。我正在寻找替代方法,因为这个方法不起作用。

4

1 回答 1

2

不幸的是,除非您可以通过 PHP 或其他脚本语言(可能在 PHP 中使用cURL)获取 HTML,然后将其从同一域传递回您的 JavaScript 应用程序,否则这是不可能的。请参阅同源政策

于 2012-10-27T13:35:25.537 回答