任何人都可以帮我解决这个Javascript问题:
我需要根据当前网站的主机名显示几个div组件,并且只在初始加载页面时才需要这样做。我为此开发了一个Javascript代码,但无法以所需的方式显示/隐藏div组件。
以下Javascript代码始终在控制台上显示“Uncaught SyntaxError:Unexpected token else”错误。
<html>
<head>
<script>
var hostName = window.location.host;
var div1 = document.getElementById('iframePortal');
var div2 = document.getElementById('iframeNormal');
If(String(hostName).indexOf('w3schools') !== -1)
{
document.getElementById('iframePortal').style.display = 'block';
document.getElementById('iframeNormal').style.display = 'none';
}
else {
document.getElementById('iframePortal').style.display = 'none';
document.getElementById('iframeNormal').style.display = 'block';
}
</script>
</head>
<body>
<div id="iframeNormal">
some text 1
</div>
<div id="iframePortal">
another 1
</div>
</body>
</html>
答案 0 :(得分:3)
使用if
代替此If
if(hostName.indexOf('w3schools') !== -1)
答案 1 :(得分:2)
首先,js是区分大小写的,因为他们告诉你。第二件事是你在完全加载之前尝试访问元素。将您的代码修改为:
<html>
<head>
</head>
<body>
<div id="iframeNormal">
some text 1
</div>
<div id="iframePortal">
another 1
</div>
<script>
var hostName = window.location.host;
var div1 = document.getElementById('iframePortal');
var div2 = document.getElementById('iframeNormal');
if(String(hostName).indexOf('w3schools') !== -1)
{
document.getElementById('iframePortal').style.display = 'block';
document.getElementById('iframeNormal').style.display = 'none';
}
else {
document.getElementById('iframePortal').style.display = 'none';
document.getElementById('iframeNormal').style.display = 'block';
}
</script>
</body>
</html>
答案 2 :(得分:0)
你有大写的“我”字母 - &gt;用“i”替换它......所以,应该是'if'。
答案 3 :(得分:0)
我会使用window.location.hostname而不是window.location.host, 还有typeof(window.location.hostname)返回'string'所以你不需要在带有String的if语句中包装hostname
<script>
var div1 = document.getElementById('iframePortal');
var div2 = document.getElementById('iframeNormal');
if(window.location.hostname.indexOf('w3schools') >= 0){
div1.style.display = 'block';
div2.style.display = 'none';
}else{
div1.style.display = 'none';
div2.style.display = 'block';
}
</script>
答案 4 :(得分:0)
这是一个有效的jsFiddle:http://jsfiddle.net/rsFPF/
我也必须使用一些CSS。请试一试。
不要使用jsFiddle?以下是代码:
HTML:
<div id='iframeNormal' class='iframes'> some text 1 </div>
<div id='iframePortal' class='iframes'> another 1 </div>
CSS:
.iframes
{
display: none;
}
的javascript:
var div1 = document.getElementById('iframeNormal');
var div2 = document.getElementById('iframePortal');
if (window.location.host.indexOf('w3schools') !== -1)
{
div1.style.display = 'block';
}
else
{
div2.style.display = 'block';
}