2016-08-04 12 views
0

をロードされた後、私はいくつかのことを行うスクリプト「selfexec.js」を持っているコードを実行サイト。Javascriptを:</p> <pre><code>!function(){ A = {init : init}}() </code></pre> <p>私は基本的に他からロードすることができるプラグインとしてこのスクリプトを使用:匿名関数を実行し、自己が

したがって、サイトBから、この関数をロードして、メソッドA.initを呼び出すとしますが、Aは、匿名関数がロードされる前でも実行されているので、常に未定義として出力されます。

私は窓に添付しようとしましたが、まだ運

誰もがこれを行うのより良い方法を持っていませんか?どんな助けもありがたいです

+0

「!」とは何ですか? '(function(){A = {init:init}})()' –

+0

このスクリプトの読み込み方法を教えてください。 Html、JSなど。コンテキストを知らなくても良い答えを出すのは難しいです。 –

+0

@NicholasRobinson通常、それはminificationの人工物です – Drakes

答えて

0

サードパーティスクリプトで初期化される前に変数を使用しようとしているようです。だから順序はここで問題です:前にサードパーティ製のスクリプトを読み込んで、それを使い始めてください。また、個人的には、コールを待ち行列に置くアプローチも好きです(同様のアプローチはGoogleの分析にも使用されます)。もっとここに

https://coderwall.com/p/2wmqhw/load-3rd-party-js-asynchronously-initialize-queue-replace-queue

ので、それについて読んで、あなたはあなたのクライアントは、あなたのサイトからコードをロードする必要がありますし、すべてのメソッドは、100%がロードされ、初期化されたサードパーティ製のコードの後に​​実行されるかの方法を定義する必要があります。

関連する問題

 関連する問題