0

主に SWFAddress を使用してフル フラッシュ用に設計されたサイトを持っているため、すべてのリンクはハッシュ "#" 記号 (例: www.site.com/#/folder/image.jpg) で終わります。

フラッシュを完全な HTML に切り替え、リンクを無効にしたくないので (Web に多くのリンクを残したので)、着信要求を制御する htaccess ファイルを作成しました。問題は、htaccess ファイルで処理できなかったため、ハッシュ "#" 記号にありました。最初の index.php の上に JavaScript コードを作成しました。

したがって、コントローラーをロードする前に、index.php ファイルは JavaScript で始まり、ハッシュ記号を削除し、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>

次に、すべてのphpが始まります...

Chrome、firefox、Opera、Safari、モバイル ブラウザなど、すべて問題なく動作します。しかし、やはり IE (テスト済みの IE8 と IE9) はおかしくなりました。IE は後で JS を起動しないようです。もちろん、インデックス コントローラー IE から JS を削除すると、うまく動作します。

どうすればこれを達成できますか?

4

0 に答える 0