javascript
  • json
  • callback
  • youtube
  • document.write
  • 2011-10-07 79 views 1 likes 
    1

    只有當我使用&lt;而不是<&gt;而不是>時,此代碼似乎只能工作,所以我如何才能使其工作以便鏈接到合法的視頻所有者的頻道。document.write <將不會工作,除非我使用<我可以做什麼,而不是生成一個鏈接?

    <script type="text/javascript"> 
        function youtubeFeedCallback(json){ 
         document.write("&lt;a href='youtube.com/user/"+json["data"]["uploader"]+"'&gt;"+json["data"]["uploader"]+"&lt;/a&gt;"); 
        } 
    </script> 
    <script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos/4TSJhIZmL0A?v=2&alt=jsonc&callback=youtubeFeedCallback&prettyprint=true"></script> 
    

    回答

    0

    json["data"]["uploader"]可能包含一些破壞您的html代碼的無效字符。 (如單引號)

    1
    var text = json["data"]["uploader"], 
    url = "youtube.com/user/" + text; 
    text.link(url); 
    
    +0

    只是好奇,你知道這是否適用於所有瀏覽器? mozilla開發者中心將其標記爲「非標準」(https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/link)。 – keeganwatkins

    +0

    我已經在IE7-8,Firefox,Opera,Chrome中測試過它,它確實有效。我在這裏看到它https://github.com/jed/140bytes/wiki/Byte-saving-techniques – Idered

    1

    它可能會更好地使用另一種注射方法比document.write(),如:

    <script type="text/javascript"> 
        function youtubeFeedCallback(json){ 
         var user = json.data.uploader, 
          a = document.createElement("a"); 
    
         a.href = 'http://www.youtube.com/user/' + user; 
         a.appendChild(document.createTextNode(user)); 
         document.getElementsByTagName("body")[0].appendChild(a); 
        }   
    </script> 
    <script type="text/javascript" src="http://gdata.youtube.com/feeds/api/videos/4TSJhIZmL0A?v=2&alt=jsonc&callback=youtubeFeedCallback&prettyprint=true"></script> 
    

    您可能需要更改的鏈接被插入的位置,但想法是從document.write()移開並使用純DOM插入。

    希望有幫助。乾杯!

    相關問題