2012-07-12 72 views
0

我有一個關於使用iframe打開外部網站數量的chrome上的kiosk模式的網站。而且每個網站都有自己的target =「_ blank」鏈接。我無法控制這些外部鏈接。 我想打開iframe中的所有外部鏈接,或者我需要爲這些target = _blank鏈接發佈一些消息。我無法在信息亭上打開新窗口。到目前爲止我已經搜索並發現它必須是一些服務器端編碼。 JavaScript不會有任何幫助。iframe中的動態外部交叉域上的force target =「_ self」

我的iframe代碼:

navigateToExternal:function(href) 
    { 
     Engine.ui.openMenu(); 
     Engine.ui.exit(); 
     Engine.ui.mostRecentSection = "external"; 

     $("a[data-navsection], a[href]").removeClass("disabled"); 
     $("a[href='" + href + "']").addClass("disabled"); 

     $(".footer").hide(); 

     var sandbox = "sandbox=\"allow-forms allow-scripts allow-same-origin\""; 


     $("#content-container").append("<iframe id=\"contentFrame\" src=" + href + "\"" + sandbox + "></iframe>"); 
    }, 

任何幫助或建議將是真正偉大。

在此先感謝!

回答

2

您不能,父頁面無法訪問跨站點iframe,並且iframe無法訪問跨站點父頁面。

這屬於同源策略,不能在客戶端進行處理。您可以在服務器上抓取這些網站,並將它們呈現爲您自己的網站,但我不確定這將是多麼有效。

+0

感謝您的回覆!有沒有一種方法可以顯示一些消息,點擊這些外部鏈接的target =「_blank」? – NewGirlInCalgary 2012-07-12 20:46:18

+0

否,因爲您無法捕獲該點擊事件,它將停止在該iframe的文檔中。 – 2012-07-12 21:10:00

+0

非常感謝您的回覆。我在這方面得到了一個解決方案,並認爲分享。我們可以通過一個命令行參數For Mac,打開終端並運行:'$ open -a Google \ Chrome --args --disable-web-security',它將禁用同源策略,然後我們可以讓我們的跨網站iframe需要更改。 – NewGirlInCalgary 2012-08-03 18:02:01

0

如果您在Chrome上運行,則可以嘗試html5 iframe​​屬性。

<iframe sandbox="allow-scripts allow-forms" src="..."></iframe> 

More Reading

0

我纔拿到工作圍繞這一點,並認爲分享。我們可以通過命令行參數對於Mac,打開終端並運行:

$ open -a Google\ Chrome --args --disable-web-security 

,它會禁用同源,政策,然後我們就可以使我們的跨網站iframe中所需的更改。