【问题标题】:Javascript On Click AlertJavascript点击警报
【发布时间】:2022-11-04 14:42:33
【问题描述】:

我正在尝试制作一个复制按钮,如果我单击按钮,它将复制当前浏览器 URL,并显示该 URL 已复制的警报。

我试过这个

<a id="copy" href="javascript:void(0);"><i onclick="myFunction()" class="fa fa-files-o" aria-hidden="true"></i></a>

<script>
var url = window.location.href;
function myFunction() {
    
  return navigator.clipboard.writeText(url);
  
  // Alert the copied text
  alert("Copied the URL: " + url);
 }
 
</script>

alert 在这里不起作用,我在哪里犯错了?

我试过这个,它在桌面上工作,但在移动设备上,只有警报功能正在执行,myFunction() 没有执行。

<a id="copy" href="javascript:void(0);"><i onclick="myFunction();,alertUrl();" class="fa fa-files-o" aria-hidden="true"></i></a>

<script>
var url = window.location.href;
function myFunction() {
    
  return navigator.clipboard.writeText(url);

 }
 function alertUrl(){
  
  // Alert the copied text
  alert("Copied the URL: " + URL);
 }
</script>

【问题讨论】:

  • return 之前的 alert,return 只会立即终止函数
  • 您可以查看我对类似问题 here 的回答,但不要输入文本,而是输入当前页面 URL
  • 谢谢@Mad7Dragon 解决了。谢谢 Marcus.Aurelianus 我学会了。

标签: javascript


【解决方案1】:

当您 return 您的函数退出时,因此永远不会调用 alert

// nothing after this "return" in your function
// will execute because "return" exits your function.

return navigator.clipboard.writeText(url);

【讨论】:

  • 有什么方法可以同时提醒和返回?
  • @MohammadFathiRahman您可以在返回之前进行警报,但是JS警报是同步的。所以它会完全阻止脚本执行,直到用户关闭警报。有一些方法可以解决这个问题,但使用模式而不是警报可能对用户更友好。您还可以避免同步问题。
  • @icecub 谢谢,我首先执行了返回函数,然后发出警报,它在桌面上工作但在移动设备上不工作,我已经用代码更新了这个问题。
【解决方案2】:

已解决,在 Mad7Dragon 发表评论后

你可以在这里查看我对类似问题的回答,但不是 文字,放当前页URL

<a id="copy" href="javascript:void(0);"><i onclick="copyURL()" class="fa fa-files-o" aria-hidden="true"></i></a>

<script>
var url = window.location.href;

function copyURL() {

navigator.clipboard.writeText(url).then(() => {
  alert("Copied the URL: " + url);
}, () => {

  try {

    window.prompt("Please copy this url", url);

  } catch (error) {
    
    alert("Your browser doesn't support this function");
  }
  
});
}

</script>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-14
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    相关资源
    最近更新 更多