'document.getElementById'仅适用于index.html

时间:2015-10-24 23:12:16

标签: javascript jquery html css getelementbyid

最终目标是在博客页面上循环浏览照片。看起来像'document.getElementById()。src'将是一个很好的方法。

问题:为了确保javascript代码成功链接到博客页面,我尝试在我的script.js文件中进行测试:

document.getElementById('testID').innerHTML = "Running test";

这在我的.html文件中:

<div id="testID"></div>

但是,“运行测试”文本没有显示在博客页面上。但是,在我的index.html页面中运行同样的完全测试时, 可以正常工作。两个.html文件都加载了相同的脚本文件和jQuery。我不明白为什么它在一个html文件中工作而不是另一个。

新发现: 当我从

中删除它时,这行代码现在可以在博客页面上运行
$(document).ready(function(){ ... });

为什么会这样?

2 个答案:

答案 0 :(得分:0)

当前页面中的Javascript只能访问当前加载到浏览器中的页面中的HTML元素。

更具体地说,document.getElementById()仅搜索当前网页的文档以查找匹配的元素。它不会搜索任何其他页面,当然也不会搜索服务器上未加载到浏览器中的其他文件。 “当前网页”表示从浏览器栏中的当前URL加载的HTML。

当网页在浏览器窗口中不再可见时(例如,它被其他页面替换),它就会消失,任何Javascript都无法访问。在某些特定情况下,您可以访问加载到其他选项卡或其他框架中的文档(遵循同源安全规则并需要不同的访问方法)。

此外,浏览器中不会对网页进行任何更改。只要网页不再加载到活动的浏览器窗口中,它就会消失并再次重新加载它将加载该文档的原始未修改版本。

如果您希望一个页面中的相同代码在另一个页面中运行,则必须在另一个页面中包含相同的代码。您可以通过将代码放入其自己的页面然后在每个页面中使用<script src="xxx.js">标记来共享对代码的引用,以使相同的代码加载到每个页面中。

答案 1 :(得分:0)

如果正确解释问题,请尝试使用width: 100%

.load()