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