大家好,我想在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 调用来做到这一点。但那将是非常糟糕的设计。