此代码应该根据页面的网址显示/隐藏文本,但它不起作用:
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?
答案 0 :(得分:2)
href
的值通常是绝对网址,因此您必须使用.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' ) {
//...
<强>更新强>
使用绝对网址或更大部分内容时,您无需使用.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>');
}
答案 1 :(得分:0)
它不起作用,因为在你的jsfiddle中var pages
是"http://fiddle.jshell.net/_display/ "
尝试console.log并确保在需要时修剪它。 对于page1.html等你的情况..你必须将它与完整/绝对路径进行比较
答案 2 :(得分:0)
如果您的网址为http://wwww.example.com/page1.html,那么您需要网址路径。所以,代码看起来像下面的
var pages = location.pathname;
if(pages == "/page1.html"){
//display page 1 text
}
else if(pages == "/page2.html"){
//display page 2 text
}