我有一个页面(不幸的是在登录系统后面),它基本上在文章列表的左侧有一个导航栏,当你点击一篇文章时,它会从存储的.inc文件加载内容在服务器上,使用提供的文件路径。
这适用于Google Chrome。
然而,在Firefox上,当页面加载时,我得到了这个奇怪的javascript错误:
“文档元素之后的垃圾” - 当我单击错误时,它会转到第一篇文章中第2行的内容。
让我给你看一些代码。
这是页面加载完成后运行的最后一个JS函数,其目的是加载初始文章。
function initialise_family_center_page()
{
if (current_element_id == "" || current_element_id == "family_center_general_info") //If this is the first article to be loaded
{
//Get the file path of the inc file to load
var content_directory = file path....;
jQuery.get(content_directory, function(data)
{
$('#family_center_main_content').html(data); //Load the content
});
}
}
正在加载的.inc文件中的内容如下:
<p>Some text</p>
<p>Some text</p>
此时值得一提的是,在Chrome和Firefox中,内容会加载。但是在firefox中,由于JS错误,您无法再使用页面的其余部分,因为JS已停止工作。
有趣的是,我通过Google搜索问题发现,如果我将文件的内容更改为:
<html>
<p>Some Text</p>
<p>Some Text</p>
</html>
然后错误没有出现并且页面正常工作(直到你加载没有标签的下一个内容文件。
然而,这不是一个合适的解决方案,因为有成千上万的文件。
有人可以帮忙吗?
答案 0 :(得分:4)
我有同样的问题。我创建了一个基页,点击foreach($_POST['productid'] as $key => $value){
echo $_POST['listprice'][$value].'<br />';
}
元素触发nav
提取$.ajax()
文件,该文件将填充页面上的主inc
- 如下所示:< / p>
div
除非我编辑了INC文件并将文本包装在$(document).ready(function(){
// Set trigger and container variables
var trigger = $('nav.primary ul li a'),
container = $('#se-main');
trigger.on('click', function(){
// Set click target from data attribute
target = this.target;
$.ajax({
url:'../inc/'+target + '.inc',
success: function(data){
// Load target page into container
container.html(data);
},
dataType: "text" // this seems to be ignored in Firefox
});
// snip other stuff
});
中,否则Firefox控制台始终记录“文档元素之后的垃圾”错误。 (但页面内容仍然更新 - 因此用户没有被它阻止。)
要解决此问题:将<html></html>
添加到apache mime.types 配置文件中的inc
行。
使用
找到该行text/html
更改为
text/html html htm
然后重启apache。
这对我有用。
默认文件位置:
Linux :text/html html htm inc
;
WAMP :/etc/mime.types
XAMPP :[wampdir]\bin\apache\[apacheversion]\conf\mime.types
[wampdir]在哪里安装WAMP / XAMPP,[apacheversion]是WAMP正在使用的apache版本。
如果您无权访问 mime.types 文件,或者您正在共享主机上运行,则此解决方案无效。
在这种情况下 - 假设您有权访问[xamppdir]\apache\conf\mime.types
- 将以下内容添加到.htaccess
可能会有效 -
.htaccess