我搜索了论坛,希望有人在我面前遇到这个问题,虽然我确信有人,但他们可能很聪明,可以自行解决。
这是我的问题:当获取外部.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>
我已经在互联网上搜索和盯着我。我唯一能想到的就是我忽略了一些简单的事情。
答案 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"];