![](/img/trans.png)
[英]Is there a way to tell if an end user will be able to handle <a href=“mailto:###”> links?
[英]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.