document.write<除非我使用<我该怎么做才能生成链接?

时间:2011-10-07 21:48:16

标签: javascript json callback youtube document.write

当我使用&lt;代替<而不是&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>

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分: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 :(得分:0)

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

相关问题