2011-10-07 4 views
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"] 5 월은 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 삽입을 사용하는 것입니다.

희망이 도움이됩니다. 건배!

관련 문제