2016-04-01 8 views
0

これが私の状況です:私は、多言語サイトを作成しようとしているIEまたはEDGEは、私が何をしても基本タグを無視します。これを回避するには?

とそのために私が選択入力があります。

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase /demo/ 

RewriteRule ^(fr|de)$ $1/ [R=302,L] 
RewriteRule ^(fr|de)/$ index.php?lang=$1 [L,NC] 

へ:私はこれを持って私のhtaccessで

<select id="select-lang" onchange="location = this.value"> 
    <option value="de">German</option> 
    <option value="fr">French</option> 
</select> 
<span id="demo"><?php echo $_["TEXT"] ?></span> 

を正しく動作しました。ベースタグを追加する必要がありました。

If I w

http://myIPaddress:8080/demo/fr/de 

とベースタグはIEおよびEDGEを除くすべてのブラウザで正常に動作します:ouldn't(最後の2つのlangs)の言語を切り替えるとき、私はこれになるだろうベースタグを追加します。彼らはそこにいなかったように行動します。私はこれについてインターネットで読んだことがあり、フルパス(<base href=/demo/>だけではない)、クローズタグ</base>、またはJS(href(LINK)の再割り当て用のJSも使用していますが、何も私のために働いていませんでした)この状況を回避する方法、ベースタグを修正する方法、またはhtaccessを変更する方法、またはこのデモコードを書き換える方法を助けてください。ベースタグを使用する必要はありませんか?

答えて

0

私の問題の解決策を見つけました(おそらく、同様の問題を抱えている人は、この恩恵を受けるでしょう)。

<base href="/demo/">

が、IEとEDGEのために私はまたのためのように(相対パスを追加するために必要な:私は私の記事で述べたように、すべてのブラウザのためには、ちょうどこのよう<base>タグを追加することで、正しく言語を切り替えるには十分でしたそれぞれのSELECTのオプションで次のようになります。

<select id="select-lang" onchange="location = this.value"> 
    <option value="/demo/de">German</option> 
    <option value="/demo/fr">French</option> 
</select> 

この場合でも、CSSとJSファイルが正しくロードされるためにはまだベースタグが必要です。私はこれを技術的に説明することはできませんが、私にとってはIEとEDGEは基底タグを参照していますが、適切な読み込みCSSやjsファイルのみを表示しますが、onchange関数の場所を変更するときは表示しません。

関連する問題