IE javascript的麻烦

IE javascript的麻烦,javascript,html,internet-explorer,Javascript,Html,Internet Explorer,我有一个网站,它主要是为SWFAddress的全速闪现而设计的,因此所有链接都以散列“#”符号结尾(例如:www.site.com/#/folder/image.jpg) 我想将flash切换到完整的HTML,并且不使任何链接失效(因为我在web上留下了很多链接),所以我创建了htaccess文件来控制输入请求。 问题在于哈希“#”符号,因为htaccess文件无法处理它。我在第一个index.php上编写了一段javascript代码 因此,在我加载任何控制器之前,index.php文件从ja

我有一个网站,它主要是为SWFAddress的全速闪现而设计的,因此所有链接都以散列“#”符号结尾(例如:www.site.com/#/folder/image.jpg)

我想将flash切换到完整的HTML,并且不使任何链接失效(因为我在web上留下了很多链接),所以我创建了htaccess文件来控制输入请求。 问题在于哈希“#”符号,因为htaccess文件无法处理它。我在第一个index.php上编写了一段javascript代码

因此,在我加载任何控制器之前,index.php文件从javascript开始删除散列符号,并重定向回不带“#”I in url的站点:

<script type="text/javascript">

var link = location.href;
m = removeHash(link);

if (link != m) { 
    document.location.href = m;
}

function removeHash(l) {
    var unhashedUrl = l;
    if (l.indexOf("#") > -1) {
        var url_pieces = l.split('/');
        var request = url_pieces[url_pieces.length-1];
        if(request.indexOf("#") == -1 && request.toLowerCase().indexOf(".jpg") > -1){
            unhashedUrl = l.replace('#', "gallery");
        }else{
            unhashedUrl = l.replace('#/', "");
        }
    }
    return unhashedUrl;
}

</script>

var link=location.href;
m=removeHash(链接);
如果(link!=m){
document.location.href=m;
}
函数removeHash(l){
var unhashedUrl=l;
如果(l.indexOf(“#”)大于-1){
var url_pieces=l.split('/');
var request=url_pieces[url_pieces.length-1];
if(request.indexOf(“#”)==-1&&request.toLowerCase().indexOf(“.jpg”)>-1){
unhashedUrl=l.替换(“#”和“画廊”);
}否则{
unhashedUrl=l.replace(“#/”,“”);
}
}
未经处理的返回;
}
然后所有的php都开始了

Chrome、firefox、Opera、Safari、移动浏览器。。。它们都能完美地工作。但IE(经过测试的IE8和IE9)再次以疯狂告终。看来IE以后不会发射任何JS了。当然,当我从索引控制器中删除JS时,IE也可以正常工作


有什么建议吗?

加载页面时,IE控制台中是否有错误?可能
removeHash
函数中的方法不受支持。使用IE开发工具(F12)查找生成的任何错误。IE控制台中没有错误。我已经升级了问题中的javascript代码。问题似乎在头脑中。当我在main index.php中添加任何JS之前的
时,IE可以工作,但我不能这样做,因为在我在php中检查它之前,我不知道该站点是什么语言(“en”或“fr”)(但首先我需要删除JS中的哈希)……好吧,是的,这样做就可以了——如果你没有doctype,那么IE就会进入怪癖模式,这意味着它将缺少很多标准特性,因此,如果任何JS代码失败,也就不足为奇了。因此,您肯定应该始终包含基本的doctype/html/head代码。无论如何,既然这个页面只是重定向到另一个页面,为什么您甚至需要指定
lang=''
;只要做
问题就解决了。我不知道它是否真的有“#”散列标签,我需要先检查一下,所以我还是需要启动JS。。。它重定向回相同的index.php,但不带“#”。至于控制台中的错误:是的,确实存在错误。它在placeholder.js中显示错误,但当我单击它时,它指向第一个标记(这是我的问题)
SCRIPT1002:Syntax error placeholder.js,第1行符号1