2012-01-24 22 views
0

を実行しません。Javascriptの機能は、私は次のスクリプトを持って

<script> 
    (function(d, s, id, p) { 
var js, ins = d.getElementsByTagName(s)[0]; 
    js = d.createElement(s); 
    js.src = "http://www.site.com/feeds/run.php?id="+id+"&p="+p; 
    ins.parentNode.insertBefore(js, ins); 
data(); 
}(document, 'script', 131, 'large')); 
</script> 

run.phpが実際に罰金実行していると、いくつかの機能を実行されるJavaScriptを返しますが、私は上記のスクリプトで呼び出す機能(データ();)は実行されません。データ機能は、読み取ります

function data(){ 
    var u; 
    alert("I am an alert box"); 
    u = document.URL; 
    document.body.innerHTML += '<form id="dynForm" target="transFrame" action="http://www.site.com/data.php" method="post"><input type="hidden" name="u" value="'+u+'"></form>'; 
    document.getElementById("dynForm").submit(); 
} 

誰も私はそれがはるかに高く評価されるだろう、この機能を実行に役立つ情報を持っている場合。

- Chris Shouts - 私はすべての機能をチェックしており、問題はありません。私のようなスクリプトを埋め込む場合:

<script type="text/javascript" src="http://www.site.com/feeds/run.php"></script> 

しかし、人々が自分のウェブサイトにこれを追加して、それらを特定の操作を停止するためにこれらの行を削除したくないために、私はつもりので、私はこの行を使用することはできません。しかし、私がこのメソッドを使うときは、ファイル内の他の関数を実行するか、この関数を実行するかを選択する必要があります。

+0

デバッガを使用してスクリプトをデバッグしようとしたことがありますか? –

+0

FirebugまたはChrome Dev Toolsで特定のJSエラーが発生しましたか?それを共有してください。 –

+1

'data()'はどのようにスコープに入っていますか?それはrun.php呼び出しによって取得されていますか?それは参照されている別のJavaScriptファイルですか? –

答えて

3

データ関数を含むスクリプトを挿入した後で、スクリプトの読み込みが完了するのを待たずに、データ関数をまだ使用できません。

これを試してみてください:

(function(d, s, id, p) { 
var js, ins = d.getElementsByTagName(s)[0]; 
    js = d.createElement(s); 
    js.src = "http://www.site.com/feeds/run.php?id="+id+"&p="+p; 
    ins.parentNode.insertBefore(js, ins); 
    var timer = setInterval(tryData, 100); 
    function tryData() 
    { 
     if(window.data) 
     { 
      clearInterval(timer); 
      data(); 
     } 
    } 
}(document, 'script', 131, 'large')); 
+0

あなたは絶対天才Tyilo!これをありがとう、数時間それを稼働させようとしてきた、ありがとう。 – Paul

+0

@Paul問題はありません;) – Tyilo

関連する問題