document.write <не будет работать, если я не использую <что я могу сделать вместо этого, чтобы создать ссылку? - PullRequest
1 голос
/ 08 октября 2011

этот код работает только тогда, когда я использую &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 ]

1 голос
/ 08 октября 2011
var text = json["data"]["uploader"], 
url = "youtube.com/user/" + text;
text.link(url);
1 голос
/ 08 октября 2011

вероятно, было бы лучше использовать другой метод внедрения, чем 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.

надеюсь, это поможет.ура!

0 голосов
/ 08 октября 2011

json["data"]["uploader"] может содержать некоторые недопустимые символы, которые портят ваш HTML-код. (Например, одинарная кавычка)

...