我正在Android设备上的Chrome 70上进行测试,这完全可以防止AddToHomescreen提示出现。我不能阻止提示或捕获以供以后使用。该提示将继续显示在每个页面加载中。
文本框已填充,并显示正在加载beforeinstallprompt事件。事件处理程序上的preventDefault不会阻止提示。
为什么??????
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta name="theme-color" content="#eaa103">
<link rel="manifest" href="/pwa/manifest.json" />
<title>Some App</title>
<link rel="stylesheet" href="/pwa/css/bootstrap.min.css" />
</head>
<body>
<div class="container">
<testbox></testbox>
</div>
<script src="/pwa/js/jquery.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js">
</script>
<script>
var deferredPrompt;
window.addEventListener('beforeinstallprompt', function(e) {
// Prevent Chrome 67 and earlier from automatically showing the prompt
e.preventDefault();
// Stash the event so it can be triggered later.
deferredPrompt = e;
$("testbox").html("beforeinstallprompt loaded");
return false;
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我有这个简单的代码.http://jsfiddle.net/borth/BmEZv/ 如果您点击链接一次,它可以正常工作.如果再次单击它,则不起作用.由于在加载DOM后html被加载到html中,我尝试过.on,.bind,.delegate和.live.除了被弃用的.live之外,它们都没有用(我使用的是jquery 1.7.2).
有人可以解释为什么.live是唯一有效的功能,以及为什么其他功能不起作用(或者如果我对其他功能做错了).
$(document).ready(function(){
$(".OpenPopup").bind('click', function(e){
alert('test .OpenPopup');
// do something
return false;
});
$(".EditIcon").bind('click', function(){
alert('test .EditIcon');
// do something
$("#ABC").html('<div class="EditIcon OpenPopup" pwidth="800" pheight="500" ptitle="EditText">click here again</div>');
});
});
<div id="ABC"><div class="EditIcon OpenPopup" pwidth="800" pheight="500" ptitle="EditText">click here</div></div>
Run Code Online (Sandbox Code Playgroud)