【问题标题】:document.write < won't work unless I use &lt; what can I do instead to generate a link?document.write < 将不起作用,除非我使用 < 我可以做什么来生成链接?
【发布时间】:2011-12-03 08:07:21
【问题描述】:

此代码似乎仅在我使用 &amp;lt; 而不是 &lt;&amp;gt; 而不是 &gt; 时才有效,所以我怎样才能让它工作,以便它链接到合法的视频所有者的频道。

<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>

【问题讨论】:

    标签: javascript json callback youtube document.write


    【解决方案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 插入。

    希望对您有所帮助。干杯!

    【讨论】:

      【解决方案2】:
      var text = json["data"]["uploader"], 
      url = "youtube.com/user/" + text;
      text.link(url);
      

      【讨论】:

      【解决方案3】:

      json["data"]["uploader"] 可能包含一些会破坏您的 html 代码的无效字符。 (如单引号)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-25
        • 2018-03-29
        • 1970-01-01
        • 2014-06-30
        • 2015-06-24
        • 2015-07-31
        • 1970-01-01
        • 2010-12-11
        相关资源
        最近更新 更多