1
在thirdpartydomain.com我想嵌入一個簡單的<script>
標籤在一個腳本拉從mydomain.com/myscript.js,它只是從mydomain.com/mypage創建一個小<div>
和拉動部分頁面內容.htm。JavaScript訪問拒絕頁面部分加載錯誤 - 爲什麼?
這裏的劇本,改編自:How to embed Javascript widget that depends on jQuery into an unknown environment
var myEmbedId = '12345';
var myEmbedContainerId = 'myEmbedContainer_' + myEmbedId;
document.write('<div id="' + myEmbedContainerId + '">IF ALL GOES WELL, THIS TEXT WILL BE REPLACED WITH MYPAGE.HTM CONTENTS');
document.write('</div>');
(function (window, document, version, callback) {
var j, d;
var loaded = false;
if (!(j = window.jQuery) || version > j.fn.jquery || callback(j, loaded)) {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "http://mydomain.com/jquery-1.4.1.min.js";
script.onload = script.onreadystatechange = function() {
if (!loaded && (!(d = this.readyState) || d == "loaded" || d == "complete")) {
callback((j = window.jQuery).noConflict(1), loaded = true);
j(script).remove();
}
};
document.documentElement.childNodes[0].appendChild(script)
}
})(window, document, "1.3", function ($, jquery_loaded) {
$(document).ready(function() {
alert('jquery loaded!');
var myRefreshUrl = 'http://mydomain.com/mypage.htm';
alert('refreshing from ' + myRefreshUrl);
$.get(myRefreshUrl, function(data){
var returnData = data;
alert('return data: ' + data);
$('#' + myEmbedContainerId).html(data); });
alert('load complete v2');
});
});
在IE中,我得到從Javascript拒絕訪問錯誤;在Firefox中我只是沒有返回數據。
這是怎麼回事?
+1打我吧:) – 2011-04-25 05:16:07
crossdomain是req'd,所以document.write()即將得到一個鍛鍊。謝謝 – Brandon 2011-04-25 05:21:55