gpt4 book ai didi

javascript - document.addEventListener 适用于 Android 但不适用于浏览器

转载 作者:行者123 更新时间:2023-12-03 10:06:53 25 4
gpt4 key购买 nike

我正在从事phonegap项目。在为 android 和 ios 编译之前,我在浏览器(safari、firefox、chrome)上执行,如果我使用在 android 上工作但不在浏览器和 ios 上工作的 document.addEventListener 。如果我想在浏览器和ios上执行代码,我必须直接将该方法放入Initdb();例如,我不知道为什么:

document.addEventListener("deviceready", initDB, false);
var db = "";
//initDB(); //añadido
function initDB() {
try {
if(!window.openDatabase)
alert('not supported');
else{

var shortName = 'Pictogramas';
var version = '1.0';
var displayName = 'PhoneGap Pictogramas Database';
var maxSize = 9999999999; // en bytes
db = window.openDatabase(shortName, version, displayName, maxSize);
db.transaction(populateDB, errorCB, successCB);

最佳答案

deviceready 是仅适用于 Cordova 应用程序的函数,因此它从来不适合在浏览器上运行。您可以确定它是应用程序(在移动设备上)还是浏览器,并无论如何调用您的 initDB()。在就绪/加载事件中添加事件监听器是一个很好的做法。因此,将 onLoad 事件添加到您的正文中:

<body onload="init()"></body>

和你的Javascript:

function init() {
if (navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry)/)) {
document.addEventListener("deviceready", initDB, false);
}
else{
initDB();
}
}

PS:navigator.userAgent.match条件可以在发布应用程序之前删除,因为一旦不再需要调试,就没有必要了。

关于javascript - document.addEventListener 适用于 Android 但不适用于浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30321172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com