动态加载JavaScript文件

时间:2015-09-24 14:29:15

标签: javascript html

我被要求通过我销售的供应商将此代码添加到我的网页中:

<script>
    (function() {
        var p = '/?vendor=2knowmysel&time=' + new Date().getTime();
        var cb = document.createElement('script'); cb.type = 'text/javascript';
        cb.src = '//header.clickbank.net' + p;
        document.getElementsByTagName('head')[0].appendChild(cb);
    })();
</script>

代码应该让页面加载到clickbank中带有红色徽标的标题中。当我在头部添加代码时没有发生任何事情。

接下来,我试图通过张贴在http://www.2knowmyself.com/testpage.htm的空白html页面(远离drupal)来隔离问题。

但框架没有出现。

这里有什么问题?鉴于clickbank声称代码是完美的。

1 个答案:

答案 0 :(得分:0)

以下是您的代码所做的事情:

<script>
    // the following line creates an anonymous immediately-invoked function
    (function() {
        // this will return a string named 'p', which contains the vendors ID and current time
        var p = '/?vendor=2knowmysel&time=' + new Date().getTime();
        // this creates a new 'script' tag for HTML, name it 'cb', and tells the code it's for JavaScript
        var cb = document.createElement('script'); cb.type = 'text/javascript';
        // this will take a url with the address and the query string, which you named 'p' earlier, and set it as the source for 'cb'
        cb.src = '//header.clickbank.net' + p;
        // now you'll insert 'cb' to the HTML, so it'll load the JavaScript file into it
        document.getElementsByTagName('head')[0].appendChild(cb);
    // the function won't run automatically upon declaration, so you use parenthesis to tell it to run
    })();
</script>

总结,它将供应商的ID和当前时间低估地发送到给定的服务器,并期望从中返回一个JavaScript文件;然后将此文件加载到HTML文档中。

目前,似乎没有工作,因为此服务器从您的页面获取信息,但没有将JavaScript文件发送回它。当他们调整它以回答正确的文件时,您会看到它相应地运行。

编辑:(回答您的最终问题)

到目前为止,我可以看到他们的服务器没有将预期的JS文件发送回你的页面,所以它不起作用。如果您想自己检查一下,请在浏览器中使用JS调试器或网络监视器(大多数现代网络浏览器都带有这些内置功能,请尝试按F12然后重新加载页面。)

如果您想检查iframe是否可以在您的服务器上运行,您可以联系其管理员或尝试自己在页面中嵌入iframe。将以下代码粘贴到文档中。如果您看到SO主页,它可以工作。否则,它什么都不显示。如果您看到Your browser does not support iframes.,则可能需要更新网络浏览器并再次检查。

<iframe src="http://stackoverflow.com" width="300" height="300">
    <p>Your browser does not support iframes.</p>
</iframe>