只能执行一次脚本

时间:2013-06-25 14:51:16

标签: javascript ajax issuu

我正在使用Ajax加载页面,在该页面上我正在加载issuu.com的外部脚本。第一次我或Ajax加载页面时它非常好用,但是如果Ajax加载一个新页面然后再返回它将不再运行外部脚本(它加载脚本,但不执行它)。 / p>

这是页面:http://dymak-corporate.134.lait.dk/catalogue/

你可以在例如浏览器开发工具的网络选项卡,它会同时加载脚本,但只在第一次执行。

我试图以我能想到的各种方式加载和执行脚本,但没有任何工作。

jQuery GetScript:

 $.getScript("//e.issuu.com/embed.js")

Ajax加载脚本并对其进行评估:

$.ajax({
    url: "/scripts/embed.js",
    success: function (responseText) {
        eval(responseText);
    }
});

每次添加到标题并在添加之前将其删除:

$('#issuuScript').remove();
var s = document.createElement("script");
s.id = "issuuScript";
s.src = "//e.issuu.com/embed.js";
document.head.append(s);

在每次加载时重新加载:

function reload_js(src) {
    $('script[src="' + src + '"]').remove();
    $('<script>').attr('src', src).appendTo('head');
}
reload_js('/scripts/embed.js');

我也尝试将其内联添加,但没有成功。

2 个答案:

答案 0 :(得分:0)

这不是JavaScript的工作方式。文件包含不像函数调用,但您将其视为函数调用。

你应该如何思考:

我想致电some_module.some_function()some_module已加载吗?

否。加载包含该模块的文件,然后执行该功能。

是。只需执行此功能。

答案 1 :(得分:0)

我最后只使用了issuu的iframe实现