2016-07-19 7 views
1

Google ReCaptchaスクリプトをページに挿入しようとしましたが、グローバルgrecaptchaを選択できませんでした。 コンソールウィンドウでScalaJSでページングするために動的に挿入されたグローバルオブジェクトを選択する方法

val script = dom.document.createElement("script").asInstanceOf[HTMLScriptElement] 
script.setAttribute("src", "https://www.google.com/recaptcha/api.js") 
script.setAttribute("async", "true") 

script.onload = { (_: Event) => 
    println(Dynamic.global.selectDynamic("grecaptcha")) // --> got undefined 
} 

dom.document.body.appendChild(script) 

、私はgrecaptchaを取得することができます:

grecaptcha

質問はグローバルgrecaptchaオブジェクトを選択する方法ですか?

+0

'ウィンドウ[ 'grecaptacha']'または単にそれを使用するを設定し

  • を設定し、文書
  • にスクリプトを追加する必要がありますグローバル変数を定義したかのように、それを使用するときはTIMEに注意してください。 – Dellirium

  • +0

    答えに感謝しますが、私はそれにアクセスできませんでした(これはScalaJS環境で、通常のJSではありません)。 –

    +0

    'window ['grecaptcha']'でアクセスできない場合、グローバルオブジェクトではありません。 (私は以前の答えにタイプミスがありました。コピーして貼り付けなかった場合、すべてのグローバルはウィンドウオブジェクトからアクセスできます。 – Dellirium

    答えて

    0

    this answer in a vanilla JavaScript environmentによれば、注文の問題が発生しているだけです。手順は

    1. onloadイベントsrc属性
    val script = dom.document.createElement("script").asInstanceOf[HTMLScriptElement] 
    dom.document.body.appendChild(script) 
    script.onload = { (_: Event) => 
        println(Dynamic.global.selectDynamic("grecaptcha")) 
    } 
    script.setAttribute("src", "https://www.google.com/recaptcha/api.js") 
    script.setAttribute("async", "true") 
    
    +0

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

    関連する問題