繁体   English   中英

是一个 href=mail 到代码执行的结束吗?

[英]Is an href=mailto the end of code execution?

我正在修改一个旧网站,但遇到了 javascript 问题。 我希望有人能帮我解释一下。 在这个网站上,有一个location.href="mailto:..."声明。 mailto之后,有一些代码可以运行。 在本网站的旧版本中,此代码可以正常运行,但在我的版本中,代码似乎在mailto之后停止运行。 这句话有什么我不明白的地方吗? 这是正常的还是这是否意味着我的代码有问题?

该网站使用php语言。 这是一些示例代码。

<script type="text/javascript">
    location.href="mailto:test@example.com";
    document.write("echo")
</script>

echo语句不会运行,并且关闭脚本标记之后的php中的任何内容也不会执行。 例如: <?php echo "hi"; ?> <?php echo "hi"; ?>

设置location.href可能会停止所有 JavaScript 和 HTML 处理,具体取决于浏览器(如果所有主要浏览器都以相同的方式处理,我不会感到惊讶)。 但是,它永远不会停止PHP的执行。

可能很难判断您的 PHP 是否一直运行到您的 JavaScript 和 HTML 停止的位置,但您可以通过写入文件来测试这一点:您的 PHP 脚本在您的服务器上创建文件不会有任何问题(前提是它具有正确的文件权限),尽管它已经达到浏览器忽略其输出的程度。

而不是location.href ,放入

window.open('mailto:test@example.com', '_blank');

(最终结果: <script type="text/javascript">window.open('mailto:test@example.com', '_blank'_;document.write("echo")</script>

这会在新选项卡中打开 mailto,并允许其余代码继续运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM