我的文件负责人:
<script type="text/javascript">
var myString= location.href;
var mySplit = myString.split("#");
var x = mySplit[1];
if (x == 'page1_div1') {
document.getElementById('div1').className = 'theNewClass';
}
</script>
我的错误是什么? 谢谢, 琳达
答案 0 :(得分:3)
如果您在文档的head
中包含该代码,问题是document.getElementById
无法找到您的"div1"
元素,因为在执行时,您的文档的body
尚未评估,请尝试使用window.onload
事件:
window.onload = function () {
var x = location.hash.substring(1);
if (x == 'page1_div1') {
document.getElementById('div1').className = 'theNewClass';
}
};
请注意,我还简化了您的代码,您想要提取当前网址的hash
部分。
答案 1 :(得分:0)
您可以通过location.hash
更轻松地获取哈希,因为您可能会有几个div,所以更容易打开它们。例如:
<script type="text/javascript">
var myHash = location.hash || 'NO-HASH';
switch (myHash) {
case 'NO-HASH':
// Original page - no hash.
document.getElementById('div1').className = 'theOldClass';
document.getElementById('div2').className = 'theOldClass';
break;
case '#page1_div1':
document.getElementById('div1').className = 'theNewClass';
document.getElementById('div2').className = 'theOldClass';
break;
case '#page1_div2':
document.getElementById('div1').className = 'theOldClass';
document.getElementById('div2').className = 'theNewClass';
break;
}
</script>
但是,如果这与您的历史记录跟踪问题有关,则您需要在轮询计时器中运行此代码。