0

我的网站主要是为带有 SWFAddress 的完整闪存而设计的,因此所有链接都以井号“#”结尾(例如:www.site.com/#/folder/image.jpg)。

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

因此,在我加载任何控制器之前,index.php 文件以 javascript 开头以删除哈希符号并重定向回网址中没有“#”的站点:

<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>

然后所有的php东西开始......

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

任何建议我应该如何实现这一目标?

4

0 回答 0