我正在構建一個Chrome擴展,它將使用加載Flash內容的Iframe。在Iframe中使用Mootools,我創建一個.swf對象,然後將它注入到自身中。此iframe,main.html中,被插入Flash對象,像這樣:從Chrome擴展中Iframe訪問不安全Javascript訪問
window.addEvent("domready", function() {
var flashContainer = $("flash-container");
new Swiff("http://www.example.com/content.swf", {
"width":"100%",
"height":"90%",
"id":"flash-content"
}).inject(flashContainer);
});
這將產生以下錯誤:
不安全的JavaScript嘗試與URL鉻擴展訪問框架:// ... ...../index.html與網址http://www.example.com/main.html。域,協議和端口必須匹配。
當我刪除代碼的注入部分,我沒有得到錯誤。另外,當我在其他非Flash元素(例如div)上使用注入時,我不會收到錯誤。我也嘗試使用純ol'appendChild javascript方法來獲得相同的錯誤。
任何想法,爲什麼我會只在Flash對象上得到這個錯誤?有沒有辦法添加這個Flash元素而沒有得到這個錯誤?
任何跨域調用的資源,是不是JSONP將提高這個安全錯誤。您需要找到一種方法將SWF內容注入到與swf文件相同的域中的頁面上,或者將SWF(如果它是靜態的)添加到數據URL(data:application/x-swf ; base64,'或其他)。 – MischaNix
我從example.com創建SWF並將其注入到example.com。那如何不構成跨域? Chrome擴展本身就是加載iframe,將所有這一切都完成了。 –
什麼是swf,'chrome-extension://./ index.html'的iframe url? – serg