-1

大家好,我想在getjson中记录一个超链接图像我尝试了以下方法,但它不起作用。你们能告诉我我的文件写有什么问题吗?

<script>  
$.getJSON('http://anyorigin.com/get?url=http://www.somesite.com/handelit.ashx&callback=?', function(data){
      var siteContents = data.contents;      
      //writes to textarea  
      document.myform.outputtext.value = siteContents ;  
      document.write("<a id="ok" href="http://www.mysite.com/master.m3u8?+siteContents+"><img src="./playicon.jpg"></a>");

    });  
</script> 
4

2 回答 2

3

大家好,我想在getjson中记录一个超链接图像

你不能(不合理*)。document.write仅在页面的初始解析期间有效。如果您在页面加载完成后使用它,它将完全替换页面。

相反,与 DOM 交互。有几种方法可以做到这一点,但根据您的代码,最明显的是最初隐藏锚点,然后在填充文本区域后显示它,如下所示:

$("#ok").show();

完整示例:Live Copy | 直播源

(我已将 playicon.jpg 更改为您的 gravatar,否则它会在 JSBin 上显示为损坏的图像)

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <form name="myform">
    <textarea name="outputtext"></textarea>
  </form>
  <a id="ok" style="display: none" href="http://www.mysite.com/master.m3u8?+siteContents+"><img src="http://www.gravatar.com/avatar/f69cfb4677f123381231f97ea1138f8a?s=32&d=identicon&r=PG"></a>
  <script>
    (function($) {
      $.getJSON('http://anyorigin.com/get?url=http://www.somesite.com/handelit.ashx&callback=?', function(data){
        var siteContents = data.contents;      
        //writes to textarea  
        document.myform.outputtext.value = siteContents;
        // shows the link
        $("#ok").show();
      });  
    })(jQuery);
  </script>
</body>
</html>

* “不合理”如果您的内容来自与文档相同的来源(看起来不像),您可以使用同步 ajax 调用来做到这一点。但那将是非常糟糕的设计。

于 2013-05-06T08:07:07.940 回答
0

请使用 createElement 而不是 document.write

$.getJSON('http://anyorigin.com/get?url=http://www.somesite.com/handelit.ashx&callback=?', function(data){
      var siteContents = data.contents;      
      //writes to textarea  
      document.myform.outputtext.value = siteContents ;  

      //Create A-Element
      var link = document.createElement('a');
      link.setAttribute('href', 'http://www.mysite.com/master.m3u8?' + encodeURIComponent(siteContents) );
      link.id = 'ok';

      //Append A-Element to your FORM-Element
      var myForm = document.getElementsByTagName('form')[0];
      myForm.appendChild(link);

      //Create IMG-Element
      var img = document.createElement('img');
      img.setAttribute('src', './playicon.jpg');

      //Append IMG-Element to A-Element (id='ok')
      link.appendChild(img);
    }); 
于 2013-05-06T08:22:21.243 回答