Articles of JavaScript

Cordova PhoneGap从2.2.0升级到5.1.1

我有Cordova 2.2.0版本的应用程序。 现在我想升级,我已经做了升级的一部分,升级后,应用程序的图像不显示,它是空白的屏幕。 即使闪屏也没有来。 这是我的代码 现在我达到了一定的水平。 我模拟的应用程序,是关于SQLitePlugin问题。 当打开数据库说db.cordova没有定义 如何安装数据库 – 将数据库从db文件夹复制到android安装位置。 这工作得很好。 这是我的数据库: var DB = new Object(); DB.isDBSupported = false; DB.isDBCreated = false; DB.vocabDB = null; DB.tables = ['userResponses', 'wordGroups', 'words', 'wordMapping', 'checkExists', 'patch_version'] DB.createdTables = 0; DB.setupCallback = null; DB.curQP = null; DB.accountStatus = false; DB.sfx = true; DB.showWarnings = true; DB.firstLaunch = […]

touchend事件不适用于Android

我刚刚开始考虑在android上进行一些基本的移动Web开发,并编写testing脚本来调查触摸事件。 我已经在android模拟器中运行以下代码,并且touchend事件永远不会被触发。 谁能告诉我为什么? 我已经尝试了三个版本的模拟器(1.6,2.1和2.2),所有三个版本的行为都是一样的。 提前感谢您的帮助,可以给我。 干杯,Colm 编辑 – 我也试过这个使用XUI框架,并有同样的问题,所以我猜我有一个根本的误解,这个东西如何工作…… 地图testing <meta name="description" content="" /> <meta name="keywords" content="" /> <meta name="language" content="english" /> <meta name="viewport" content="minimum-scale=1.0, width=device-width, height=device-height, user-scalable=no"> <script type="text/javascript"> window.onload = function(){ document.body.appendChild( document.createTextNode("w: " + screen.width + " x " + "h : " +screen.height) ); attachTouchEvents(); } function attachTouchEvents() { console = […]

通过提取反应本机发布请求引发networking请求失败

我遇到了以下错误。 目前我正在开发一个带有React Native的Android应用程序,因此我打算使用fetch来为我发送一个post请求。 fetch("https://XXreachable-domainXX.de/api/test", { method: "post", body: JSON.stringify({ param: 'param', param1: 'param', }) } ) .then((response) = > response.json() ) . then((responseData) = > { ToastAndroid.show( "Response Body -> " + JSON.stringify(responseData.message), ToastAndroid.SHORT ) }) . catch((error) = > { console.warn(error); }) ; 该应用程序现在抛出一个错误: TypeError:networking请求失败 当我将代码更改为GET-Request时,它的工作正常,在浏览器中使用window.alert()作为返回它很酷,并且Chrome扩展邮局正确返回数据。

Android Web-View:将本地Javascript文件注入到远程网页

之前已经问过很多次了,我浏览过所有东西,还没有明确的答案。 问题简化:是否可以注入本地JavaScript文件(从资产或存储)到Android Web-View加载的远程网页? 我知道可以将这样的文件注入到Web视图中加载的本地网页(Assets HTML)中。 为什么我需要这个工作? :通过避免每次下载较大的文件(如Js和CSS文件)来加快浏览体验。 我想避免Web-Viewcaching。

iScroll 4不支持表单<select>元素iPhone Safari和Android浏览器

我正在使用这个HTML代码: <form action="#" method="post"> <fieldset> <label class="desc" id="title10" for="Field10"> How many children do you have? </label> <select id="Field10" name="Field10" class="field select large" tabindex="5"> <option value="0" selected="selected">0 </option> <option value="1">1 </option> <option value="2">2 </option> <option value="3">3 </option> <option value="4">4 </option> <option value="5">5 </option> <option value="6">6 </option> <option value="7">7 </option> <option value="8">8 </option> <option value="9">9 </option> </select> […]

JS对象中的键(string)的长度是否有限制?

所以我们有一个情况,我们会有一些JSON,其中键是id(int),值是string。 但是我们注意到大多数时候,我们都是根据string来查找id,所以我们决定将其逆转,并将string作为键,值就是id。 因为这样,而不是通过每个项目和比较值,我们可以做var id = storage[text]; 。 以下是我们所做的例子。 以下是旧实现的示例: var storage = { 0 : null, 1 : "Hello", 2 : "world!", 3 : "How are you?" } 以下是新实现的示例: var storage = { "null" : 0, "Hello" : 1, "world!" : 2, "How are you?" : 3 } 我明白,现在string是关键,可以为相同的string获取相同的ID。 但是从现在开始,string可能会非常大(很小的机会,但是每个string最大可能为1KB), 那么JS或Android webview将长度限制放在对象键上吗? 而且,这个实现有缺点吗? 到目前为止,我还没有注意到任何问题,但你永远不知道。

Chrome浏览器针对Android的错误clientX和clientY行为的解决方法是什么?

在适用于Android版本16和18(至less)的Chrome中,存在错误地报告clientX和clientY错误。 如果页面滚动,至lesstouchstart事件clientX/Y的值将不正确,但不是click事件。 这里有一个错误: https://code.google.com/p/chromium/issues/detail?id=117754 其中包含这个例子,你可以尝试自己: http : //www.apprisant.com/tab/cd.html 我在这里用canvas做了一个类似的例子: http : //codepen.io/simonsarris/full/dJcvn 这些示例可以在其他移动浏览器(包括普通的旧版Android浏览器)上运行,但Android版Chrome浏览器在滚动时似乎已经破坏了clientX / Y(至less有一些)触摸事件。 有趣的是,clientX和clientY在click事件上并没有像touchstart一样被touchstart 。 我的问题是,什么是让clientX和clientY在浏览器上一致工作的最佳解决方法? 它似乎与window.scrollX和window.scrollY将抵消“解决”的问题,但一个很好的解决方法需要: 确定浏览器是否受到折磨,最好不要让用户做任何事情,也不要诉诸检查userAgent(所以不要对特定浏览器版本做任何假设)。 换句话说, 我们如何判断哪些浏览器对于clientX和clientY有不好的价值? 解决这个问题是可靠的,只有在那些需要解决的浏览器上(大概只有Chrome for Android,只有特定的版本,因为未来的版本可能会好),看起来,通过window.scrollX/Y抵消是唯一需要的在这里完成。

确定并绑定点击或“触摸”事件

我使用下面的代码来绑定“click”或“touchstart”事件(使用jQuery的on(eventType, function() { … }) )。 var what = (navigator.userAgent.match(/iPad/i)) ? 'touchstart' : 'click'; 稍后的: $foo.on(what, function() { … }); …这对iPad和“其他”非常有用,但是我担心上面的代码有“iPad隧道愿景”… 我的问题: 所有其他设备(例如Android平板电脑)是否也有类似的命名为“touchstart”事件? 如果是这样,我怎样才能改善上述代码,以便我可以说明这些事件types? 换句话说,我怎么能在上面的代码(不仅仅是iPad)中考虑更多的触摸设备呢? 编辑#1 你们有什么想法: var foo = ('ontouchstart' in window) ? 'touchstart' : ((window.DocumentTouch && document instanceof DocumentTouch) ? 'tap' : 'click'); 注意:以上大部分逻辑来自Modernizr这里 。 以上似乎适用于Firefox / iPad …我目前没有其他testing。 我喜欢上面的是我不是UA嗅探。 🙂 是否tap所有其他触摸设备的默认设置? 编辑#2 […]