-1

以下のような理由で機能しないこのPHPスクリプトについてサポートが必要です

<?php
.
.
.
echo "<li><a href='#' onclick='print(); return false; _gaq.push(['_trackEvent', 'check', 'test1', 'Print01']); '>";
echo "</a></li>";
.
.                                       
.
?>

グーグルトラッキングイベントコードを削除すると、onclick print()は問題なく機能しますが、どこに問題があるのか​​誰かが知っていますか、それとも何かを見逃している可能性がありますか?

4

1 に答える 1

0

PHPとJavascriptのコードを混同しているようです。onclickハンドラーの「print()」はJavascriptであり、という名前のJavascript関数が定義されていない限り、print失敗してリンクが読み込まれます。また、falseを返した後に分析呼び出しを行うことは、実行されないため、役に立ちません。

編集:私は少し誤解しました。コードで'を使用しているだけでなく、含まれているテキストを区切るために'を使用しています。クリックイベントを処理するための別の関数を作成することをお勧めします。そうしないと、一重引用符をエスケープする必要があります。

onclick='print(); return false; _gaq.push([\'_trackEvent\', \'check\', \'test1\', \'Print01\']);'

..ただし、PHPにもエスケープコードがあり、\もエスケープする必要がある場合があることに注意してください。私はむしろそれを別の関数に移動したいと思います:

<script type="text/javascript">
    function handleClick()
    {
        print();
        _gaq.push(['_trackEvent', 'check', 'test1', 'Print01']);
        return false;
    }
</script>

'check'、'test1'、'Print01'をhandleClickの引数として指定できるようにすると、再利用も容易になります。

于 2012-11-05T10:22:08.713 に答える