繁体   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