Javascript 可以在模拟器上运行,但不能在真机上运行
Javascript works on emulator but doesn't work on real device
背景与我昨天发的这个问题有关:
。
我得到了这个问题的答案,我在 chrome devtools 中尝试过,它工作正常。但是今天当我在真实设备(iPhone)上测试它时,它不起作用。当我使用我的旧代码时,按钮可以工作,但只有在刷新之后。当我使用那个接受的答案时,按钮不再起作用。但它在 chrome 虚拟设备中完美运行。希望有人能帮忙。
您可能想为这样的移动设备使用触摸事件:
$("#close").on("touchstart", CloseBanner);
或者,如果您不想使用不同平台的事件分隔,那么您可以使用 non-jquery 选项,如下所示:
closeButton = document.getElementById('close');
closeButton.onclick = CloseBanner;
希望对您有所帮助...
我会这样做:
$(function () { //implicit DOMReady handler in jQuery
$("#close").on("touchstart click", CloseBanner); //make sure you handle touch events
$("#download").on("touchstart click", SetAppStorePath);
});
而且不用为 pageinit 操心。编辑:哦,我明白是什么问题了!你不能遗漏锚点上的 href。将 href="#"
添加到这些锚点,它应该可以正常工作。还可以考虑更改应用商店中的 href link 而不是设置 window 位置,因为人们喜欢看到 link 将带他们去哪里。
<div class="banner">
<div class="container">
<a id="close" href="#">×</a>
<a id="download" href="#">Download</a>
</div>
</div>
和
$('#close').attr('href', 'app store URL goes here');
背景与我昨天发的这个问题有关:
我得到了这个问题的答案,我在 chrome devtools 中尝试过,它工作正常。但是今天当我在真实设备(iPhone)上测试它时,它不起作用。当我使用我的旧代码时,按钮可以工作,但只有在刷新之后。当我使用那个接受的答案时,按钮不再起作用。但它在 chrome 虚拟设备中完美运行。希望有人能帮忙。
您可能想为这样的移动设备使用触摸事件:
$("#close").on("touchstart", CloseBanner);
或者,如果您不想使用不同平台的事件分隔,那么您可以使用 non-jquery 选项,如下所示:
closeButton = document.getElementById('close');
closeButton.onclick = CloseBanner;
希望对您有所帮助...
我会这样做:
$(function () { //implicit DOMReady handler in jQuery
$("#close").on("touchstart click", CloseBanner); //make sure you handle touch events
$("#download").on("touchstart click", SetAppStorePath);
});
而且不用为 pageinit 操心。编辑:哦,我明白是什么问题了!你不能遗漏锚点上的 href。将 href="#"
添加到这些锚点,它应该可以正常工作。还可以考虑更改应用商店中的 href link 而不是设置 window 位置,因为人们喜欢看到 link 将带他们去哪里。
<div class="banner">
<div class="container">
<a id="close" href="#">×</a>
<a id="download" href="#">Download</a>
</div>
</div>
和
$('#close').attr('href', 'app store URL goes here');