人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

JavaScriptの質問です。
▼以下のページは国旗(英/スペイン/日本)の画像をクリックすると、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


●質問者: icta
●カテゴリ:ウェブ制作
✍キーワード:firefox Google翻訳 IE6 IE8 JavaScript
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● GreenStar
●300ポイント

translator.js の下から2行目にある baseURI の部分を location.toString() に代えてください。

◎質問者からの返答

ご回答ありがとうございます。

早速試してみたのですが、私の環境ではうまく動作しないようです。

別件ですが、http://q.hatena.ne.jp/1271446360でご回答いただいたときにポイントを付けることができませんのでしたのでこちらからポイントを付けさせていただきます。ありがとうございました。


2 ● hanako393
●0ポイント

Javascriptの変数のどれかが、undefinedでなってます。

それを修正すべきです。

◎質問者からの返答

ご回答ありがとうございます。

残念ながら変数の問題ではなかったようです。詳しくはコメント欄をご確認ください。


3 ● Cherenkov
●500ポイント ベストアンサー

前回の回答 にある 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> ');
◎質問者からの返答

ご回答ありがとうございます。

こちらのコードで完全に希望通りの動作を確認できました。

お手軽に設置できて、簡単に翻訳できてしまうこのコードは重宝しそうです。

本当にありがとうございました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ