HTMLにオブジェクトタグを動的に組み込むことに問題があります。 私たちは、いくつかのhtmlフラグメントを取得するために呼び出す外部サービスを持っています。これには、オブジェクトタグ、スクリプト、および単純なHTMLフォームが含まれています。私はそのコンテンツを取り出してページのdivに追加してから、そのオブジェクトを使用するスクリプトを実行しようとします。 Firebugを使ってデバッグすると、コードがページに正しく挿入されていることがわかりますが、オブジェクトにアクセスしようとするとスクリプトにエラーが発生します。オブジェクトは初期化されていないようです。私が意味するものを具体化するためのコードをいくつか見せてください。javascriptから動的に追加されたHTMLオブジェクトを使用している問題
getFragmentは、コンテンツを取得するためにjQueryを使用してajax呼び出しを行います。
var htmlSnippet = RequestModule.getFragment(dto);
$('#plugin').html(htmlSnippet).hide();
プラグインのdivに含まれるコンテンツは、「署名者」オブジェクトを使用しようとすると、この
<div id="plugin" style="display: none; ">
Browser:
Chrome
<object name="signer" id="signer" type="application/x-personal-signer2"></object>
<form method="POST" name="signerData" action="#success">
<input name="nonce" value="ASyhs..." type="hidden">
<input name="signature" value="" type="hidden">
<input name="encodedTbs" value="U2l..." type="hidden">
<input name="provider" value="nexus-personal_4X" type="hidden">
<input type="submit" onclick="doSign()" value="Sign">
</form>
</div>
javascriptのように見えますが、次のようになります
function doSign(){
var signer2 = document.getElementById("signer");
retVal = signer2.SetParam('TextToBeSigned', 'some value...');
... and then some more
}
これは私がsigner2.SetParamメソッドを呼び出したときにエラーが発生した場合です。
Object #<an HTMLObjectElement> has no method 'SetParam'
しかし、私は、コンテンツがページにスクリプトをロードするときにロードされた元のページを使用するときに、私は「SETPARAM」メソッドは、オブジェクト上で、スクリプトが動作することが存在することを知って動作します。しかし、後でそれを動的にページに追加すると、何とか動作しません。
私はこのことを、運がない日の最後の数日間たくさんのものに巡回しました。 誰かがこれを動作させる方法について考えている人はいますか?
敬具、 ヘンリク
こんにちは、返信ありがとう! jQueryには、後でオブジェクトを追加したときにイベントをアタッチしてトリガーするのに問題があると言うと正しいかもしれません。ここでは、ページが最初に読み込まれたときに空のobjecタグを含めて解決しました。その後、その値がわかっていて、後で別のパラメータを動的に追加して動作します。私が将来的に時間を得るなら、私はあなたの提案されたsoloutionをテストします。 –