2009-05-14 9 views
0

カスタムURLにアクセスするには特定のJavaScriptを実行する必要があります。URLでJavaScriptを実行するには

この時点で私が走ったする必要がJavaScriptをトリガーするボタンの背後にあるコードはこれです:あなたはJavaScriptを埋め込むことに言及している場合

<a class="button" href="#" 

    onclick="new Request.HTML({ 
    method: 'post', 
    url: '/ro/somefolder/anotherfolder', 
    data: {'user_id': 777, 'score': 1, 'redirect': '1'}, 
    update: $('vote_user_777'), 
    evalScripts: true 
}).send();return false;"> 

<img src="/images/game/thumbsup.gif" alt="vote"> 
</a> 

</span> 
</p> 

+0

問題の原因はもう少し具体的になりますか?申し訳ありませんが、私は間違っていることを理解するのが難しいです。 –

+0

私は、Webサイトには、JavaScriptを起動すると、そのJavaScriptを実行するためのカスタムURL(ページURL +何か)が必要なボタンがあると言われています。 – Cumatru

答えて

2

あなたはどのような問題が発生しているかは言いませんでしたが、構文はMooToolsライブラリのように見えます。

私は、動作するはずの小さなJavascriptをまとめ、MooToolsスタイルに沿ったものです。

window.addEvent('domready',function() { 
    var request = new Request.HTML({ 
     method: 'post', 
     url: '/ro/somefolder/anotherfolder', 
     data: {'user_id': 777, 'score': 1, 'redirect': '1'}, 
     update: $('vote_user_777'), 
     evalScripts: true 
    }); 
    $$('a.button').addEvent('click',function(e) { 
     e.stop(); 
     request.send(); 
    }); 
}); 
0

イベントハンドラとしてURLを添付するのではなく、次のようにすることができます。

<a href="javascript:void(new Request.HTML({...}).send())"> 

void()関数を使用すると、ブラウザが現在のページから移動しないように何も返されません。

+0

彼の関数のreturn偽のステートメントは、すでにそれを処理します。 –

+0

はい、スクリプトをURLに埋め込もうとしている場合、falseを返すとエラーが生成されるか、「false」というページに移動します。 'javascript:' URLを使うときは、代わりに 'void()'で囲むべきです。 –

+0

実際には、onclickハンドラがfalseを返すとき、それはデフォルトで実行されません。これはhrefに移動します。 – seanmonstar

関連する問題