链接到HTML文件时外部.js文件中断

时间:2017-08-06 03:26:59

标签: javascript html5

我搜索了论坛,希望有人在我面前遇到这个问题,虽然我确信有人,但他们可能很聪明,可以自行解决。

这是我的问题:当获取外部.js文件时,脚本范围内的所有javascript都会中断。我不确定我是如何获取脚本的问题,或者外部文件中是否存在问题(尽管我已将其复制到本地HTML文件中并且工作正常)。我已经搜索了高低的答案,我想我已经到了无法看到树林的地方。

这是我的外部代码(banners.js):

class Complex
{
public:
    // TODO: define constructors and assignment operator

    Complex sampleFunc(Complex&); // could also return Complex& (*this)
    Complex operator+(const Complex&) const;

private:
    std::unique_ptr<char[]> _data;
    size_t _size;
};

以下是我试图注入代码的部分:

    function randomBanner()
{
    var banners = new Array();
        banners[0] = "\"./images/banner_placholder_L.png\"";
        banners[1] = "\"./images/banner_placholder_R.png\"";

    var ranIndex = Math.floor(Math.random()*banners.length);
    return banners[ranIndex];
}

我的文件夹结构是:

 <!-- BANNER INJECTION -->
    <div class="container">
        <div class="left">
            <img id="banL" src="./images/banner_placeholder_L.png">
            <script src="banners.js">
                document.write("this");
                //var newBan = randomBanner();
                //document.write(newBan);
                //document.getElementById("banL").src=ranomBanner();
            </script>
        </div>
        <div class="right">
            <img id="banR" src="./images/banner_placeholder_R.png">
            <script>
                //document.getElementById("banR").src=randomBanner();
            </script>
        </div>
    </div>

我已经在互联网上搜索和盯着我。我唯一能想到的就是我忽略了一些简单的事情。

2 个答案:

答案 0 :(得分:0)

所以我不确定发生了什么,因为我已经尝试过这个但没有成功,但是将范围移到头部然后在页面中稍后调用randomBanner()似乎可以工作。

但是,我现在遇到了一个没有更新的新问题。然而,这是一个不同的问题。

**通过将banners.js移动到头部并在下面添加document.write(randomBanner())来测试。

答案 1 :(得分:0)

我不喜欢你的代码结构 - 最好只将脚本插入一次然后引用 - 而不是将它放在你想要使用的地方的html中。

可能导致您出现问题的两个问题 - 在您已注释掉的内容中 - 您有一个拼写错误(不是随机的) - 然后您在阵列中的内容有问题 - 您正在将引号转移到数组中 - 并且当数组元素用于更新src时 - 那些引号将导致它破坏。

删除转义的引号,并查看src属性是否按预期更新。你也有数组src中的拼写错误(大概是 placholder 应该占位符

    banners[0] = "./images/banner_placeholder_L.png";
    banners[1] = "./images/banner_placeholder_R.png";

也 - 您可以将该数组简化为:

var banners =["./images/banner_placeholder_L.png","./images/banner_placeholder_R.png"];