私は現在、GreaseMonkey ユーザー スクリプトを開発して、イントラネット アプリ内のいくつかのフォーム フィールドを直接変換できるようにしています。
このコードを使用して Google Translation API を呼び出すまで、すべて問題ありません。
var apiurl = 'https://ajax.googleapis.com/ajax/services/language/translate?v=1.0&langpair=fr%7Cen&q=';
$.getJSON(apiurl+encodeURIComponent(text)+"&callback=?",function(data){
alert('Translation Complete');
//Change text
});
ここに私の問題があります:
- これは Cross-Domain リクエストであるため、JSONP を使用せざるを得ません。そのために
&callback=?
、URL の末尾に文字列を追加しました。コールバックは起動されgetJSON
ませんが (ただし、応答データは正しい)、Firebug コンソールに次のエラーが表示されます。
jsonp1298988446807 は定義されていません
代わりにa を使用すると
&callback=foo
、FF が気に入らないようです。リクエストが POST ではなくなったため、完了しませんが ([ネットワーク] パネルに) 表示されます。OPTIONS request_url 405 Method Not Allowed
コールバックとして指定するカスタム関数を作成すると、関数が呼び出されないため機能しません (機能するかどうかを確認するアラートのみが含まれます)。
これが機能しない理由が少しでもわかっている場合は、私を助けてください。私は壁に頭をぶつけそうになっているからです (多分助けになるでしょう ^^)。
ありがとう。
編集: Scoobler のおかげで、私はもう少し先に進んだと信じていました。彼のコードを使用して、スクリプトから a 以上のものを取得することができました
/ignore
^^
要求は Firebug のネットワーク タブに表示されず、アラートによって返される応答は次のとおりです。
応答テキスト: 未定義
返されたステータス: エラー
スローされるエラー: スローされるエラー: [Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: file:///C:/Documents%20and%20Settings/username/Application% 20Data/Mozilla/Firefox/Profiles/jmbr7ut9.default/extensions/%7Be4a8a97b-f2ed-450b-b12d-ee082ba24781%7D/components/greasemonkey.js :: 匿名 :: 行 396" データ: いいえ]
その間、私は自分で調査を続け、ドメイン間リクエスト用の jQuery/GreaseMonkey ブリッジに出くわしました。完全なチュートリアルはこちら(この投稿から) ですが、これは Scoobler のスクリプトとまったく同じエラーを示しています。