首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >innerHTML在else条件下未更改

innerHTML在else条件下未更改
EN

Stack Overflow用户
提问于 2012-07-27 19:43:08
回答 2查看 243关注 0票数 0

请参见以下代码

代码语言:javascript
复制
<div id="news-ticker">
<marquee id="news-marquee" scrollamount="3" onmouseover="stop()" onmouseout="start()" style="padding-top:2px; padding-bottom:2px;">
Latest News
</marquee>
</div>

<script type="text/javascript">

var currenturl = document.URL;

if ((currenturl.indexOf("&lang=nl") != -1) || (currenturl.indexOf(";lang=nl") != -1) || (currenturl.indexOf("&lang=nl#content") != -1))  {
document.getElementById("news-marquee").innerHTML = '<?php require_once("news_nl.php"); ?>';
}

else if ((currenturl.indexOf("&lang=en") != -1) || (currenturl.indexOf(";lang=en") != -1) || (currenturl.indexOf("&lang=en#content") != -1))  {
document.getElementById("news-marquee").innerHTML = '<?php require_once("news_en.php"); ?>';
}

else if ((currenturl.indexOf("&lang=fr") != -1) || (currenturl.indexOf(";lang=fr") != -1) || (currenturl.indexOf("&lang=fr#content") != -1)) {
document.getElementById("news-marquee").innerHTML = '<?php require_once("news_fr.php"); ?>';
}

else {
document.getElementById("news-marquee").innerHTML = '<?php require_once("news_nl.php"); ?>';
}

</script>

在HTML页面上,我有一个包含字幕的div,用于显示网页上的最新新闻。需要在字幕中显示的内容取自php文件。下面是正在发生的事情:

当页面加载时,我首先看到“最新新闻”出现在字幕中。也就是说:它在javascript执行之前不久显示。之后,新闻字幕显示正确的内容:如果我在网站的荷兰语(&lang=nl)部分,就会显示荷兰语新闻项目,法语项目会显示在法语网站上,等等。

但是有些页面的网址上没有"&lang=xx“的痕迹,所以在这些情况下,我有else条件,它默认显示荷兰新闻项。但是,这不会被执行。新闻字幕保持空白。甚至连“最新新闻”都不再播放了。

Firebug不会抛给我任何错误,所以我不知道这里会发生什么。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-27 19:47:46

您的问题是使用require_once而不是includerequire_once只允许文件被包含一次。

我建议在PHP中进行检查,并且只给客户端一个文件,以减少带宽使用。

票数 2
EN

Stack Overflow用户

发布于 2012-07-27 20:06:45

不要使用innerHTML句点。它是一个专有的微软JScript方法,不能正确解析它插入到DOM中的代码。在翻译中,当您试图与通过innerHTML“插入”的代码进行交互时,浏览器可能看不到,也可能看不到。

坚持使用W3C标准方法,如appendChildimportNodeinsertBeforereplaceChild

如果需要在文本和代码之间进行转换,请使用new DOMParser()将文本解析为代码,使用new XMLSerializer()将代码解析为文本。

此外,您应该坚持在PHP中使用单引号,因为双引号用于将变量解释为文本,这需要更多的资源。我假设includes是在服务器上执行的,而您实际上并不期望在客户端执行这些includes。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11687079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档