Articles of JavaScript的

如何将javascript函数的返回值传递给android?

我想让我的Android应用程序调用一个用javascript编写的函数,并期望从中获得返回值。 我知道WebView.loadUrl是异步工作的,所以我现在要做的是让javascript在完成后通知我的android应用程序,并通过使用javascriptinterface调用java函数传递返回值。 我想知道是否有更好的方法来做这个以及是否有人注意到javascript和android之间的任何消息丢失。

使用Javascript检测websocket支持的最佳方法是什么?

我正在尝试使用Javascript来检测Web浏览器是否支持websockets,但是仅使用基于function的检测,我得到误报,所以我添加了一个用户代理测试来抛弃Android设备,我不是高兴的。 我有三星Galaxy Tab 2,这是我的检测代码: var isSupported = ((“WebSocket” in window && window.WebSocket != undefined) || (“MozWebSocket” in window)); /* This line exists because my Galaxy Tab 2 would otherwise appear to have support. */ if (isSupported && navigator.userAgent.indexOf(“Android”) > 0) isSupported = false; if (isSupported) document.write(“Your browser supports websockets”); else document.write(“Your browser does not support […]

Android浏览器:touchcancel被解雇了,touchmove有防止默认

我正在尝试构建一个网页,用于感知用户的触摸,并沿着canvas拖动和对象。 所以我做的是这样的: var touchStart = function(e) { e.preventDefault(); // Do stuff } var touchMove = function(e) { e.preventDefault(); console.log(“Touch move”); // Move objs } var touchEnd = function(e) { e.preventDefault(); console.log(“Touch start!”); // clean up stuff } var touchCancel = function(e) { e.preventDefault(); // Oh NO touch cancel! console.log(“Touch cancel!”); } bindElemOrig.addEventListener(‘touchstart’, touchStart, false); bindElemOrig.addEventListener(‘touchmove’, […]

jQuery移动活动指示器未显示在android中

我尝试在我的应用程序中显示活动指示器。 我正在使用activity.js作为活动指标。 那个在浏览器和iPhone上运行良好但它在Android设备中不起作用。 我不知道为什么指标在Android设备中不起作用。 以下是我的活动指标示例代码: function showIndicator() { console.log(“inside show indicator”); applyOverLay(); var showIndicator = document.createElement(“div”); showIndicator.setAttribute(“class”, “activity-indicator”); document.body.appendChild(showIndicator); $(‘.activity-indicator’).activity({ width: 5, space: 1, length: 3, color: ‘#fff’ }); } function applyOverLay() { var overlay = document.createElement(“div”); overlay.setAttribute(“id”, “overlayAttr”); overlay.setAttribute(“class”, “overlay”); document.body.appendChild(overlay); } function hideindicator() { $(‘.activity-indicator’).activity(false); setTimeout(function() { $(“.activity-indicator”).empty().remove(); }, 0); setTimeout(function() { $(“.overlay”).empty().remove(); […]

防止身体滚动(移动,原生浏览器)

在三星Galaxy S5 / S6的原生浏览器上,下面是一块CSS: body { overflow: hidden; } 不会阻止身体滚动。 这有解决方法吗? 编辑:如下所述,这可以通过添加overflow:hidden到html标签来完成。 但这引入了一个窗口滚动到顶部的问题。 是否有可能在没有滚动副作用的情况下阻止身体滚动(页面滚动到顶部一次html,身体溢出:隐藏)? 附注:问题在以下环境中可重现: Samsung Galaxy S5 (Android 5.0) Browser: Native; Samsung Galaxy S6 (Android 6.0.1) Browser: Native; iPhone 5S (iOS 8.4.1) Browsers: Chrome; Safari; iPhone 6+ (iOS 9.3.2) Browsers: Chrome; Safari;

两次创建对象会产生不同的结果

我有下面的javascript代码。 在Chrome,Firefox,Android模拟器,三星Galaxy S(Gingerbread 2.3.3)上的Firefox和iPod上的Safari上运行正常。 在三星Galaxy S上的原生浏览器上它没有。 代码创建一个对象并测试对象上的值。 第一次创建对象时它是正确的。 第二次创建对象时,值不正确。 这是Javascript或V8或设备中的错误吗? 你会如何解决它? var Padding = function(pleft, ptop, pright, pbottom) { this.top = 20; this.left = 1; this.right = 0; this.bottom = 0; this.left = pleft; this.top = ptop; this.right = pright; this.bottom = pbottom; }; function testPadding() { var p; p = new Padding(91, 92, 93, […]

如何在Firefox中保存全屏状态?

在全屏幕上关注Mozilla的API文档后 ,我在我的网站上放置了以下代码,它只需要整个文档(html元素),并在用户点击页面中的任意位置后使页面全屏显示,并且一旦有另一次点击,页面恢复正常。 var videoElement = document.getElementsByTagName(‘html’)[0]; function toggleFullScreen() { if (!document.mozFullScreen) { if (videoElement.mozRequestFullScreen) { videoElement.mozRequestFullScreen(); } } else { if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } } } window.addEventListener(“click”, function(e) { toggleFullScreen(); }, false); 我的问题是如何保存这个全屏状态,所以每次Firefox加载时,该页面仍然是全屏的。 或者任何解决方法? 这适用于Android版Firefox。

移动设备上的HTTP直播流检测

我想检测手机/平板电脑是否可以播放HTTP直播(m3u8)。 我目前正在测试这个脚本: function isHLSEnabled() { var videoElement = document.createElement(‘video’), canPlayAppMpeg = videoElement.canPlayType(‘application/x-mpegURL’), canPlayAppleMpeg = videoElement.canPlayType(‘vnd.apple.mpegURL’); return ( (canPlayAppMpeg == ‘probably’ || canPlayAppMpeg == ‘maybe’) || (canPlayAppleMpeg == ‘probably’ || canPlayAppleMpeg == ‘maybe’) ); } 但它在某些三星浏览器(股票,海豚等)上效果不佳 – 它返回false(因为canPlayTypes是空字符串)但是它能够播放video。 有没有用于检测此类流媒体支持的防弹(ish)解决方案?

Twitter Bootstrap Dropdown在平板电脑上无法点击

在我们网站的菜单上,我们有一个用户帐户选项的按钮下拉列表,可根据用户名和登录状态动态更改。 它在浏览器中运行良好,但是,在Android平板电脑上(使用Firefox),我们似乎无法点击下拉列表中的任何链接,虽然链接DO出现,每当您点击它们时,下拉列表就会消失并且没有任何反应。 我正在使用最新版本的Bootstrap(2.1.1)和下拉插件 。 它可以在桌面上运行,并且可以通过平板电脑点击,链接只需在点击时关闭popup窗口即可。 这是代码: Profile Sign Out 有没有人知道如何通过平板电脑点击链接?

当我逐个删除每个标记时,如何在Google Map V3 Marker上添加自定义animation?

这是我在Google地图V3上逐个删除每个标记的简单工作示例。 当标记添加到Google Map时,我设置了Drop Animation。 但我想使用任何Javascript Stuff或其他库自定义Drop with Fade Animation? 谷歌在命名空间中有这个选项我们可以在命名空间中添加自定义animation选项吗? google.maps.Animation.DROP google.maps.Animation.BOUNCE google.maps.Animation.CUSTOM_FADE(有可能吗?) 我的Google地图V3工作代码 Google Maps Multiple Markers var locations = [ [‘Bondi Beach’, -33.890542, 151.274856, 4], [‘Coogee Beach’, -33.923036, 151.259052, 5], [‘Cronulla Beach’, -34.028249, 151.157507, 3], [‘Manly Beach’, -33.80010128657071, 151.28747820854187, 2], [‘Maroubra Beach’, -33.950198, 151.259302, 1] ]; var map = new google.maps.Map(document.getElementById(‘map’), { zoom: […]