Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在getjson中编写document.write图像超链接?_Javascript_Jquery_Ajax_Getjson - Fatal编程技术网

Javascript 如何在getjson中编写document.write图像超链接?

Javascript 如何在getjson中编写document.write图像超链接?,javascript,jquery,ajax,getjson,Javascript,Jquery,Ajax,Getjson,嗨,我想记录的所有内容。在getjson中编写一个超链接图像。我尝试了以下方法,但无效。你们能告诉我我的文件怎么了吗 <script> $.getJSON('http://anyorigin.com/get?url=http://www.somesite.com/handelit.ashx&callback=?', function(data){ var siteContents = data.contents; //writes to

嗨,我想记录的所有内容。在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> 

$.getJSON('http://anyorigin.com/get?url=http://www.somesite.com/handelit.ashx&callback=?,函数(数据){
var siteContents=data.contents;
//写入文本区域
document.myform.outputtext.value=站点内容;
文件。填写(“”);
});  
嗨,我想记录的所有内容。在getjson中编写一个超链接图像

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

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

$("#ok").show();
完整示例:|

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


JS-Bin
(函数($){
$.getJSON('http://anyorigin.com/get?url=http://www.somesite.com/handelit.ashx&callback=?,函数(数据){
var siteContents=data.contents;
//写入文本区域
document.myform.outputtext.value=站点内容;
//显示链接
$(“#ok”).show();
});  
})(jQuery);


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

请使用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);
    }); 

您在控制台中有任何错误吗?404将使回调实际上从未被调用。我建议花一个小时从头到尾阅读。它实际上只需要一个小时,它向您展示了如何在页面加载后和DOM进行交互等基本操作。谢谢您的回复。我的主要目标是使用sitecontent变量更改href值部分。我如何才能做到这一点?当getjson在textarea中显示时,我从它那里得到了响应!我尝试了document.getElementById(“ok”).innerHTML=siteContents;但它改变了超链接的url,超链接的图像不会显示@user1788736:你是指锚上的
href
?你使用(或者,在这个特定的例子中,他们大多做相同的事情)。非常感谢brewal,这正是我想要的。它工作得很好:-)
$.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);
    });