请参见以下代码
<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不会抛给我任何错误,所以我不知道这里会发生什么。
发布于 2012-07-27 19:47:46
您的问题是使用require_once而不是include。require_once只允许文件被包含一次。
我建议在PHP中进行检查,并且只给客户端一个文件,以减少带宽使用。
发布于 2012-07-27 20:06:45
不要使用innerHTML句点。它是一个专有的微软JScript方法,不能正确解析它插入到DOM中的代码。在翻译中,当您试图与通过innerHTML“插入”的代码进行交互时,浏览器可能看不到,也可能看不到。
坚持使用W3C标准方法,如appendChild、importNode、insertBefore和replaceChild。
如果需要在文本和代码之间进行转换,请使用new DOMParser()将文本解析为代码,使用new XMLSerializer()将代码解析为文本。
此外,您应该坚持在PHP中使用单引号,因为双引号用于将变量解释为文本,这需要更多的资源。我假设includes是在服务器上执行的,而您实际上并不期望在客户端执行这些includes。
https://stackoverflow.com/questions/11687079
复制相似问题