此代码应该根据页面的网址显示/隐藏文本,但它不起作用:
var pages = window.location.href;
if(pages == "page1.html"){
//display page 1 text
}
else if(pages == "page2.html"){
//display page 2 text
}
http://jsfiddle.net/yp8h2moe/1/
我在本地测试了,没有成功,所以我用jsfiddle测试了,但不幸的是每次保存jsfiddle时,都会得到一个新的url。
更新
这是更新后的代码,我能够指定文件扩展名来运行它,但我需要它仅使用 url 来运行:
<script>
var pages = window.location.href;
if( pages.split('/').pop() === 'http://akecheta.com/free-blogger-templates/' ) {
document.write('<b>Hello World 1</b>');
}
else if( pages.split('/').pop() === 'http://akecheta.com/free-blogger-templates/' ) {
document.write('<b>Hello World 2</b>');
}
</script>
解决方案 How can I insert HTML text in Javascript the right way?
最佳答案
href
的值通常是绝对 URL,因此您必须使用 .indexOf()
,如下所示:
var pages = window.location.href;
if(pages.indexOf("page1.html") > -1){
//display page 1 text
}
else if(pages.indexOf("page2.html") > -1 ){
//display page 2 text
}
或者,您可以使用 .split()
和 .pop()
,假设您的网址没有查询字符串:
if( pages.split('/').pop() === 'page1.html' ) {
//...
更新
使用绝对 URL 或其较大部分时,无需使用 .split()
和 .pop()
。请记住,split
创建一个数组,而pop
则获取该数组的最后一个元素。对于绝对网址,您不需要此过程。
var pages = window.location.href;
if( pages.indexOf( 'http://akecheta.com/free-blogger-templates/' ) > -1 ) {
document.write('<b>Hello World 1</b>');
}
else if( pages.indexOf( 'http://akecheta.com/free-blogger-templates/xx' ) > -1 ) {
document.write('<b>Hello World 2</b>');
}
关于应该根据 url 显示/隐藏文本的 javascript 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26578600/