簡體   English   中英

如何防止 onclick JavaScript 在頁面加載時運行?

[英]How can I prevent an onclick JavaScript from running on page load?

我試圖將一個 PHP 腳本附加到一個按鈕上,這樣當有人點擊它時,我就會收到他們所在的頁面。 我已經編寫了 PHP 腳本,並且正在嘗試將其附加到 JavaScript onclick 調用。 這是我到目前為止所擁有的:

<button id="location">Click to reveal the page you're on</button>

<script>
    function send_sms() {
        var result  = '<?php locate_me(); ?>';
        console.log('send_sms');
    }
    document.getElementById('location').addEventListener('click', send_sms, false);
</script>

但是,JavaScript 在頁面加載時被調用 - 而不是在單擊按鈕時 - 或者可能只是運行 PHP。 console.log 命令不會在頁面加載時寫入,但會運行 PHP 腳本。 很奇怪——至少對我來說是這樣。

我不精通 JavaScript,但我認為 addEventListener() 可以防止這種情況發生。 我究竟做錯了什么?

謝謝,弗蘭克

我不確定你所說的“揭示用戶所在的頁面”是什么意思,但我認為這與你問的問題無關。 我不太喜歡在同一個文件上運行 php 腳本,我正在運行我的 js。 正如 nice_dev 建議的那樣,我會對一個單獨的 php 文件進行 ajax 調用,以便獲得實時更新而不是預加載你的 php 變量。

所以我會這樣寫我的代碼:你的主文件:

<?php // Result from your second php file ?>

 <script> // Ajax call $(document).ready(function(){ $("#location").click(function(){ var result = '<?php echo $variable; ?>'; $.ajax({ url: "somepage.php", type: "POST", data: {result:result}, success: function(result){alert(result }}); }); }); </script>
 <html> <body> <button id="location">Click to reveal the page you're on</button> </body> </html>

您的第二個文件將處理您的 ajax 請求:

<?php 
$yourvariable = $POST['result'];

if isset($yourvariable){
// The php code you want to execute
}
?>

我希望這是有道理的。 否則,我很樂意詳細說明。 總之,我會嘗試在循環過程中對 2 個文件運行您的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM