[英]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.