2

GoogleTranslateApiを使用してテキストを翻訳するのに役立つFacebookのユーザースクリプトを作成しています。スクリプトは、htmlとcssのコンテンツをFacebookに正常に挿入しています。

問題はGoogleTranslateApiにあります。スクリプトタグを挿入しています

var s = document.createElement('script');
s.type="text/javascript";
s.src='https://www.google.com/jsapi?key=AIzaSyD24A-czAdTj8pPc5ugo0bYiPRx8Rc2pXo';
document.body.appendChild(s);

まず、このスクリプトはURLを2〜3回ロードしています。

言語Apiを実際に使用するために、別のスクリプトタグを挿入しています

var ldfun = document.createElement('script');
ldfun.setAttribute('type', 'application/javascript');
ldfun.textContent= "google.load('language','1');";
document.body.appendChild(ldfun);

このスクリプトは実行されておらず、実行されるとページが移動します。

助けてください

4

1 に答える 1

0

スクリプトがiFrameで実行されていないことを確認してから、遅延を使用してライブラリJSがロードされていることを確認します(そうでない場合、ブラウザーはこれら2つをscript非同期で実行します)。

このようなもの:

if (window.top != window.self)  //-- Don't run on frames or iframes
    return;

function addJS_Node (text, s_URL)
{
    var scriptNode                      = document.createElement ('script');
    scriptNode.type                     = "text/javascript";

    if (text)  scriptNode.textContent   = text;
    if (s_URL) scriptNode.src           = s_URL;

    //--- document.head is best.  Use document.body only on poor target pages.
    document.head.appendChild (scriptNode);
}

//--- Load Google-Translate, JS API.
addJS_Node (null, 'https://www.google.com/jsapi?key=AIzaSyD24A-czAdTj8pPc5ugo0bYiPRx8Rc2pXo');

//--- Initialize Google-Translate after a delay to make sure it has loaded.
setTimeout (function() {
    addJS_Node ("google.load('language','1');", null);
    },
    1500
);
于 2011-05-02T06:53:10.703 に答える