タイトルは、私が要約できる最良の方法です。これを説明する方法は少しあいまいです。基本的に、HTML ファイル内から JSON 関数を保持する JavaScript ファイルを含めると、JSON 関数をトリガーします - コールバックが機能します。ただし、独自のファイル内から JSON 関数を呼び出すだけでは、コールバックは発生しません。これがある種の JavaScript または Web ブラウザのセキュリティ機能であるかどうかは不明です。説明のために素晴らしいでしょう。
下記は用例です。
作業バージョン:
json.html: (トリミング)
<html>
<head><script type="text/javascript" src="json.js"></script></head>
<script>
JSON_Object(json_url, function(json_obj) {
alert(json_obj); // this version works!
});
</script>
<html>
json.js:
function JSON_Object(json_url, callback) {
// This function will return an object to the JSON data.
json_url = json_url + "&callback=jsonCallback";
var json_script = document.createElement("script");
json_script.setAttribute("src", json_url);
json_script.setAttribute("type", "text/javascript");
window.jsonCallback = function(jsonObjReturn) {
// cleanup
document.body.removeChild(json_script);
delete window[callback];
callback(jsonObjReturn); // use our callback function to return the data.
}
document.body.appendChild(json_script);
}
非稼働バージョン - json.js 内の別の関数:
JSON_Object(content_page, function(json_obj) {
alert(json_obj); // This version doesn't work. Never called.
});