0

我对这个问题有类似的问题。

通过 AJAX 加载 Javascript 通过 jQuery 加载?

我想使用 Ajax 和 JQuery 的 .load() 将 HTML 页面加载到 div 容器中。html 页面上有 javascript,可以从http://www.showmyweather.com/加载天气小部件

这是脚本:

<script type="text/javascript" src="http://www.showmyweather.com/weather_widget.php?    int=0&type=js&country=ca&state=Ontario&city=Hamilton&smallicon=1&current=1&forecast=1&background_color=ffffff&color=000000&width=175&padding=10&border_width=1&border_color=000000&font_size=11&font_family=Verdana&showicons=1&measure=C&d=2013-11-11"></script>

除了将脚本内联到 html 页面之外,我不知道如何将小部件包含在 DOM 中。如果有办法使用此脚本并将其添加到使用 $.getscript(); 那会很好,但我无法弄清楚。

4

2 回答 2

0
var element = document.createElement("iframe");
document.body.appendChild(element);
var frame = window.frames[windows.frames.length - 1];
frame.document.write('<scr' + 'ipt type="text/javascript" src="http://www.showmyweather.com/weather_widget.php?int=0&type=js&country=ca&state=Ontario&city=Hamilton&smallicon=1&current=1&forecast=1&background_color=ffffff&color=000000&width=175&padding=10&border_width=1&border_color=000000&font_size=11&font_family=Verdana&showicons=1&measure=C&d=2013-11-11"></sc'+ 'ript>');
于 2013-11-12T05:25:48.737 回答
0

这是使用Asset.javascript中的 mootools 完成的方式:

var loadScript = function (source, properties) {
    properties || (properties = {});
    var script = document.createElement('script');
    script.async = true;
    script.src = source;
    script.type = 'text/javascript';
    var doc = properties.document || document, load = properties.onload || properties.onLoad;
    return delete properties.onload, delete properties.onLoad, delete properties.document, 
    load && (script.addEventListener ? script.addEventListener("load", load) : script.attachEvent("readystatechange", function() {
        [ "loaded", "complete" ].indexOf(this.readyState) >= 0 && load.call(this);
    }))
    doc.getElementsByClassName("head")[0].appendChild(script);
}

现在您可以调用loadScript("script url", {document: window.frames[0].document}),它将在窗口中加载脚本。只需要在选项和脚本中传递一个外部文档。

于 2013-11-12T05:59:24.307 回答