0

我想添加fb像按鈕和fb發送按鈕到網頁。在IE中使用javascript將xmlns標記添加到HTML標記。 FB像按鈕/發送按鈕不會渲染

我無法修改源代碼中的html標籤來添加fbname空間,所以我改爲使用客戶端JS添加相同的代碼。

var htmlRoot = jQuery(jQuery("html").get(0)); 
    if(typeof(htmlRoot.attr("xmlns:fb")) == "undefined") { 
     htmlRoot.attr("xmlns:fb",'http://www.facebook.com/2008/fbml'); 
     htmlRoot.attr("xmlns:og",'http://opengraphprotocol.org/schema/'); 
     if (typeof(console) != 'undefined' && console) { 
      console.log("FB NameSpace added"); 
     } 

    } 

僅在添加命名空間後調用FB.XFBML.parse函數。如果我在調用解析函數之前執行命名空間,我可以看到html命名空間已被修改。這適用於除IE以外的所有瀏覽器。 IE不尊重更改的名稱空間。即使記錄名稱空間值表明它已包含FBName空間,但仍然不顯示類似的按鈕。任何工作?

+0

這個http://stackoverflow.com/questions/1262285/javascript-adding-attribute-dynamically-to-the-html-tag可能是你感興趣的。 – Niklas

+0

@Niklas通過它..但沒有幫助獲得解決方案。 – Sharad

回答

0

添加條件代碼這對於IE調用document.namespaces.add()

+0

我正在添加名稱空間而不考慮瀏覽器。修改後的名稱空間不受IE的尊重,這就是爲什麼所有問題。 – Sharad

0
if(document.namespaces) { 
    //IE 
    document.namespaces.add("fb", "http://ogp.me/ns#"); 
    document.namespaces.add("og", "http://ogp.me/ns/fb#"); 

    if (typeof(console) != 'undefined' && console) { 
      console.log("IE: OG and FB NameSpace added"); 
     } 
} else { 
    //Other Browsers 
    var htmlRoot = jQuery(jQuery("html").get(0)); 
    if(typeof(htmlRoot.attr("xmlns:fb")) == "undefined") { 
     htmlRoot.attr("xmlns:og",'http://ogp.me/ns#'); 
     htmlRoot.attr("xmlns:fb",'http://ogp.me/ns/fb#'); 
     if (typeof(console) != 'undefined' && console) { 
      console.log("OG and FB NameSpace added"); 
     } 
    } 
} 

不要把它變成$(文件)。就緒()函數!