これは私のコードなぜonclick関数はonclickで実行されますが、手動で呼び出すとどうなりますか?
// Register onclick
var old_onclick = link.onclick;
link.onclick = function() {
astr_track_action(param);
if(typeof(old_onclick) == "function")
old_onclick();
}
されており、これは、HTML
<a onclick="alert('hello!');" href="http://www.google.com?acme=link&foo=bar">To google!</a>
私はリンクをクリックすると、アラートがポップアップ表示
です。しかし私のJSコードでonclickをオーバーライドすると、 ではなくのポップアップが表示されます。アイデア?
編集:私はちょうど私がデバッグとold_onclick()
が実行されていることが確認されている、追加したいのですが、何の警告メッセージが現れません。
編集:ループ開始からの完全なコードです。私はそれが関連性の方法を見ていないが、それが要求されました:
for(var i = 0; i < document.links.length; i++)
{
var link = document.links[i];
var eventlink = link.href.split("acme=");
if(eventlink.length > 1)
{
var param = eventlink[1].split("&")[0];
var newlink = link.href;
// Register onclick
var old_onclick = link.onclick;
link.onclick = function() {
astr_track_action(param);
if(typeof(old_onclick) == "function")
old_onclick();
}
と同じですか? 'param'はどこかで定義されていますか? 'astr_track_action'は成功したのでしょうか?この行をコメントするとどうなりますか? –
これは実際のコードですか? jsfiddleの例を設定して私たちを見せてもらえますか? – lonesomeday
@Felix Klingはい、私はデバッグして、old_onclick()がonclickで実行されていることを確認しました。 @lonesomedayはい、それはEclipseから直接コピーされた実際のコードです。 – Hubro