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="#">&times;</a>
        <a id="download" href="#">Download</a>
    </div>
</div>

$('#close').attr('href', 'app store URL goes here');