我有一个Flash SWF文件正在运行的页面的iframe;有没有人有一个想法如何使它透明,以便我的下拉菜单应该完美显示?请注意,我无法编辑源页面(仅在Flash页面中添加param = wmode, value = transparent
),但如果有机会在iframe或我的页面上使用某些JavaScript,我已经尝试过allowtransparency="true"
和background-color="transparent"
。带有Flash内容的iframe html页面为下拉菜单创建问题
回答
对不起,但没有办法做到这一点。 除非您在显示页面的页面上有控制权并添加了wmode = transparent参数。这是自从Flash上出现网页以来最大的问题之一。 你可以做什么,是写一封电子邮件给闪存页面的主人,并请他添加该参数。
在菜单打开时,您可以暂时隐藏包含div的闪光灯。菜单打开时使用javascript设置flashDiv.style.display = "none";
,并在菜单关闭时将其设置回flashDiv.style.display = "block"
。
我建议您增加下拉菜单中style.zIndex
属性的值,以便即使它不透明也可能出现在iframe前面。但这只是一个想法,我不知道它是否会起作用。
要试试这个,因为浏览器忽略非定位元素的style.zIndex
财产,你的下拉菜单,然后应具有style.position
与"relative"
或"absolute"
。
编辑:我可以看到你现在正试图添加一个makeWmode
函数到你的swfobject.js版本。当然,我希望你的代码将工作,但在其他方面这里是我的,如果我可以帮你...
function makeWMode(id, mode) { // id: the id of the <object> tag of the Flash object; in this case I think it is "content"
var object = swfobject.getObjectById(id);
var params = object.getElementsByTagName("param");
var success = false;
for (var i = 0; i< params.length; i++) {
if (params[i].name.toLowerCase() == "wmode") {
params[i].value = mode;
success = true;
break;
}
}
if (success == false) {
var param = document.createElement("param");
param.name = "wmode";
param.value = "transparent";
object.appendChild(param);
success = true;
return success;
}
}
使用makeWMode("content", "transparent")
添加了标签<param name="wmode" value="transparent">
到object
标签,但它可能不会有embed
标签工作。
让我试试你的想法..顺带感谢至少有一个答案在这里.. – Ilyas
守则的index.html是象下面这样:
<script type="text/javascript" src="files/swfobject.js">//</script>
<script type="text/javascript" src="files/swfaddress.js">//</script>
<script type="text/javascript" src="files/facebook.js">//</script>
<script type="text/javascript">
var assetsFolder = 'assets';
var mobileFolder = 'mobile';
var changeURL = function(){
if(document.getElementById('hrefMobile'))document.getElementById('hrefMobile').href = dir+mobileFolder+'/index.html';
if(document.getElementById('hrefSEO'))document.getElementById('hrefSEO').href = dir+assetsFolder +'/seo/toc.html';
delete changeURL;
}
if (document.addEventListener){
document.addEventListener("DOMContentLoaded", changeURL, false);
} else {
document.attachEvent("onDOMContentLoaded", changeURL);
}
function afterLoad(){
checkPage();
setFocusOnFlash();
}
function setFocusOnFlash(){
var f=swfobject.getObjectById('content');
if (f) { f.tabIndex = 0; f.focus(); }
}
function getURLParam()
{
var returnObject = {};
var href = window.location.href;
if (href.indexOf("?") > -1)
{
var param = href.substr(href.indexOf("?"));
var arrayParam = param.split("&");
returnObject['assets'] = assetsFolder;
for (var i = 0; i < arrayParam.length; i++)
{
var value = arrayParam[i].split("=");
returnObject[value[0]] = value[1];
}
}
return returnObject;
}
var dir = "./files/";
var getURI = function(){
var URIArray = document.location.href.split('/');
URIArray.length = URIArray.length-1;
var URIstr = URIArray.join('/');
URIArray = null;
var URIarr = dir.split('/');
URIarr[0] = URIarr[0]=='.'?'':URIarr[0];
var dirStr = URIarr.join('/');
URIstr = URIstr+dirStr;
return URIstr;
}
var swfName = "flippingbook.swf?rnd=44c3b8c18caec0e3862101a6d4de273f";
var ua = navigator.userAgent.toLowerCase(),
platform = navigator.platform.toLowerCase(),
UA = ua.match(/(opera|ie|firefox|chrome|version)[\s\/:]([\w\d\.]+)?.*?(safari|version[\s\/:]([\w\d\.]+)|$)/) || [null, 'unknown', 0],
mode = UA[1] == 'ie' && document.documentMode;
var Browser = {
extend: Function.prototype.extend,
name: (UA[1] == 'version') ? UA[3] : UA[1],
version: mode || parseFloat((UA[1] == 'opera' && UA[4]) ? UA[4] : UA[2]),
Platform: {
name: ua.match(/ip(?:ad|od|hone)/) ? 'ios' : (ua.match(/(?:webos|android|bada|symbian|palm|blackberry)/) || platform.match(/mac|win|linux/) || ['other'])[0]
},
Features: {
xpath: !!(document.evaluate),
air: !!(window.runtime),
query: !!(document.querySelector),
json: !!(window.JSON)
},
Plugins: {}
};
if(Browser.Platform.name == 'android' || Browser.Platform.name == 'ios') window.location = dir+mobileFolder+"/index.html";
if(Browser.Platform.name == 'webos' || Browser.Platform.name == 'bada' || Browser.Platform.name == 'symbian' || Browser.Platform.name == 'palm' || Browser.Platform.name == 'blackberry') window.location = dir+assetsFolder+"/seo/page1.html";
var flashvars = getURLParam();
var params = {baseURI: getURI(), base: dir, allowFullScreen: true, allowScriptAccess: "sameDomain", quality: "high", scale: "noscale",bg:"transparent" };
var attributes = {align: "middle" };
swfobject.embedSWF(dir + swfName, "content", "100%", "100%", "10.0.0", dir + "expressInstall.swf", flashvars, params, attributes);
</script>
- 1. html页面中的Silverlight下拉菜单?
- 2. Flash内容覆盖下拉菜单
- 3. 错误的下拉菜单上的页面创建 - html css
- 4. Joomla创建html页面没有菜单
- 5. CSS中的下拉菜单出现在页面内容下
- 6. HTML下拉菜单的问题
- 7. HTML/jQuery/CSS下拉菜单问题/ Safari
- 8. CSS下拉菜单推动页面内容下降
- 9. CSS + HTML下拉菜单重叠问题
- 10. CSS下拉菜单问题
- 11. 我的页面内容与IE7中的下拉菜单重叠
- 12. WordPress菜单问题:下拉菜单标题打开空白页面
- 13. iframe后面的pdf下拉菜单pdf
- 14. 如何在html/css中创建下拉菜单登录菜单
- 15. 在GWT中创建带下拉功能的下拉菜单。
- 16. 下拉菜单的问题
- 17. IE下拉菜单问题
- 18. Magento下拉菜单问题
- 19. JQuery下拉菜单问题
- 20. QML:菜单下拉问题
- 21. 有关下拉菜单的问题
- 22. iframe中的下拉菜单
- 23. 从下拉菜单中移动页面停止内容
- 24. 下拉菜单下的内容
- 25. 创建下拉菜单
- 26. CSS,创建下拉菜单
- 27. Android创建下拉菜单
- 28. 创建一个带有角度js的下拉菜单
- 29. 创建一个带有制表符的下拉菜单
- 30. web2py创建下拉菜单layout.html菜单
+1 - 这是一个有趣的想法。但是,切换元素的'style.display'属性可能会导致页面重排。您可能希望切换“style.visibility”属性(在“隐藏”和“可见”之间)。 – Luc125