2012-10-27 78 views
1

我想在本地jquery對話框中製作跨域iframe內容。當我在同一個應用程序中開發它時,一切都很好。當我tryed測試它與另一個URL另一個應用程序,我得到錯誤:跨域iframe jquery選擇器

Error: Permission denied to access property ... 

我知道,有安全策略的問題,但我需要做內部框架的選擇。

讓我告訴你我做什麼:
foo/plugin.js:

 

    var frameDOM; 
    function frameLoaded() { 
     for (var i = 0; i < window.frames.length; i++) { 
      if (window.frames[i].name == "frame-name-here") { 
       frameDOM = window.frames[i].document; 
       break; 
      } 
     } 
    } 

    $(function() { 
     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, 
       buttons: { 
        "Deliver": function() { //Some long code here 
         } 
       } 
       create: function (event, ui) { 
        $(this).append(frame); 
       } 
      }); 


及其框架加載後,我可以輕鬆地訪問到裏面的內容框架:

$("#frame-input", frameDOM).val(); 


跨域我失去了這種可能。是否有其他方式來控制選擇器insode框架,從另一個域取?

P.S.我不需要Resize frame,該解決方案沒有幫助。我正在尋找替代方法,因爲這一個不起作用。

回答

2

不幸的是,除非您可以通過PHP或其他一些腳本語言(在PHP中使用cURL)來獲取HTML,然後再從同一個域名將其傳回給您的JavaScript應用程序,否則這是不可能的。請參閱Same Origin Policy