こんにちは、getjson 内にハイパーリンク イメージを document.write したいと思います。
できません(合理的ではありません*)。document.write
ページの最初の解析中にのみ機能します。ページの読み込みが完了した後に使用すると、ページが完全に置き換えられます。
代わりに、DOM と対話します。これを行うにはいくつかの方法がありますが、コードに基づく最も明白な方法は、アンカーを最初は非表示にしてから、次のようにテキスト領域に入力した後に表示することです。
$("#ok").show();
完全な例:ライブコピー| ライブソース
(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 呼び出しでこれを行うことができます。しかし、それは非常に悪い設計になります。