我想在Firefox插件中嵌入一个Flash对象。
这可以通过图像完成:
imgTest = function(document){
var h = document.getElementsByTagName("body")[0];
var img = document.createElement("img");
img.src = 'chrome://extname/content/image.jpg';
h.appendChild(img);
}
使用Flash完成同样的操作时,Flash对象不会显示:
flashTest = function(document){
var h = document.getElementsByTagName("body")[0];
var ob = document.createElement("object");
var embed = document.createElement("embed");
embed.type = 'application/x-shockwave-flash';
embed.src = 'chrome://extname/content/flash.swf';
ob.appendChild(embed);
h.appendChild(ob);
}
在Firebug中查找对象,但嵌入显示为灰色。
这可能吗?
答案 0 :(得分:0)
我想document
指向浏览器内容区域中加载的网页(至少你似乎拥有HTML文档,而不是XUL文档)。然后问题似乎是该网页不允许访问chrome://extname/
。如果您希望网页可以访问您的扩展程序的内容,那么您应该在chrome.manifest
中指定contentaccessible
flag,例如:
content extname chrome/path/ contentaccessible=yes
侧节点:它恰好适用于图像,因为只要您设置src
属性,图像就会同步开始加载 - 因此请求的发起方是您的扩展,并且允许请求。 Flash对象仅在插入文档后才开始异步加载。这里请求的发起者是网页,在这种情况下不允许它。