▼以下のページは国旗(英/スペイン/日本)の画像をクリックすると、Google翻訳を使って閲覧中のページが国旗の言語に自動翻訳されるコードです。
http://cherenkov.hp.infoseek.co.jp/tmp/sample/translate2.shtml
日本の国旗をクリックすると元のページに戻ります。
Firefox,Safariでは期待通りの動作をするのですが、IE6~8は、日本の国旗をクリックするとURLの末尾に「undefined」の文字列が自動的に追加され、404エラーとなってしまいます。
IE6~IE8でもFirefox等と同じように「undefined」を追加させない方法は何かありませんでしょうか?
お知恵をお借りできれば幸いです。
なおこの質問は▼こちらの質問の派生質問です。詳細コードはこちらをご覧になってみてください。
http://q.hatena.ne.jp/1267371986
前回の回答 にある translator.js を以下のように書き換える。
// Google翻訳のページから抜ける。 var orgAdrs = /&u=(.+)&rurl=/.exec(location); // <- 変更 orgAdrs = orgAdrs ? unescape(orgAdrs[1]) : "#"; // <- 追加 document.write('<a href="' + orgAdrs + '" target="_top"><img src="./ja.png" style="border:0;" alt="日本語のページに戻る"></a> ');
translator.js の下から2行目にある baseURI の部分を location.toString() に代えてください。
ご回答ありがとうございます。
早速試してみたのですが、私の環境ではうまく動作しないようです。
別件ですが、http://q.hatena.ne.jp/1271446360でご回答いただいたときにポイントを付けることができませんのでしたのでこちらからポイントを付けさせていただきます。ありがとうございました。
Javascriptの変数のどれかが、undefinedでなってます。
それを修正すべきです。
ご回答ありがとうございます。
残念ながら変数の問題ではなかったようです。詳しくはコメント欄をご確認ください。
前回の回答 にある translator.js を以下のように書き換える。
// Google翻訳のページから抜ける。 var orgAdrs = /&u=(.+)&rurl=/.exec(location); // <- 変更 orgAdrs = orgAdrs ? unescape(orgAdrs[1]) : "#"; // <- 追加 document.write('<a href="' + orgAdrs + '" target="_top"><img src="./ja.png" style="border:0;" alt="日本語のページに戻る"></a> ');
ご回答ありがとうございます。
こちらのコードで完全に希望通りの動作を確認できました。
お手軽に設置できて、簡単に翻訳できてしまうこのコードは重宝しそうです。
本当にありがとうございました。
ご回答ありがとうございます。
こちらのコードで完全に希望通りの動作を確認できました。
お手軽に設置できて、簡単に翻訳できてしまうこのコードは重宝しそうです。
本当にありがとうございました。