我有一個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