我的网站主要是为使用SWFAddress的全闪存而设计的,因此所有链接都以哈希“#”符号结尾(例如:www.site.com /#/ folder / image.jpg)。
我想将Flash切换为完整的HTML并且不要使任何链接死亡(因为我在Web上留下了很多链接),所以我创建了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工作也很好。
任何建议我应该如何实现这一目标?