Articles of JavaScript

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

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

Android的WebView的Javascript getSelection

我有一些麻烦从Android中的WebView的select。 我可以让WebView进入select模式。 我甚至可以把它复制到剪贴板的文本。 但是我真正想要做的是永久地突出select。 所以这个想法是把WebView放在select模式下。 让用户select文本,然后触发某些内容以突出显示该文本。 我可以通过从剪贴板中获取选定的文本,然后在Javascript中search并突出显示它。 当用户select一个真正的常用词时就会出现问题。 我必须要么突出全部或以某种方式找出select是哪里得到正确的。 我试过这个在iPhone上运行的JavaScript。 Bu getSelection()似乎不适用于Android。 function highlight(colour) { var range, sel; if (window.getSelection) { // Non-IE case sel = window.getSelection(); if (sel.getRangeAt) { range = sel.getRangeAt(0); } document.designMode = "on"; if (range) { sel.removeAllRanges(); sel.addRange(range); } // Use HiliteColor since some browsers apply BackColor to the whole block […]

JavaScript警报在Android WebView中不起作用

在我的应用程序中,我正在使用WebView并使用JavaScript alert( )方法,但它不工作,没有popup窗口。 在我的清单文件中,我已经添加了 <uses-permission android:name="android.permission.INTERNET"></uses-permission> 并在我已经添加的活动文件 mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl("file:///android_asset/demo.html"); 在我已经添加的布局xml文件中 <WebView android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" /> 任何线索如何在WebView启用完整的JavaScript ? 更新 谢谢马克 在html文件中的alert()方法正在工作:)。 现在在WebView有两个问题: 1:我在使用WebView加载的html文件中使用<textarea> ,并尝试使用印地语语言编写字体,但是当我尝试编写印地文文本时,它显示为符号(矩形符号,如[]) 。 当我在桌面上的Firefox浏览器中做同样的工作正常。 任何线索如何在WebView textarea中支持多语言? 2:当我单击提交并尝试打开另一个Java脚本中的alert()方法中的文本的值时,它不起作用,这是否意味着即使使用WebChromeClient后, WebChromeClient适用于当前加载的HTML页面,而不是从那个页面?

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

我使用下面的代码来绑定“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 […]

如何解决“因为我们正在等待WebCore的响应触摸下来,

我正在开发一个基于webView的android应用程序,并试图捕获触摸事件。 然而它不工作,我在日志中看到这条消息: “因为我们正在等待WebCore的响应,所以不要拖动” 有谁知道如何解决这个问题?

是否有一种Android的Firebug或JavaScript控制台debugging?

我正在开发一个移动网站。 它适用于Firefox桌面。 它适用于iPhone,但是当我在Android 2.x(也许更低)上按下button时。 我的JavaScript代码崩溃或还有什么… 我可以访问这些设备的logging器或JavaScript控制台吗? 更好的应该是一种Firebug应用程序。

navigator.geolocation.getCurrentPosition不适用于Android谷歌浏览器

此代码: navigator.geolocation.getCurrentPosition( function(position) { alert(position.coords.latitude, position.coords.longitude); }, function(error){ alert(error.message); }, { enableHighAccuracy: true ,timeout : 5000 } ); http://jsfiddle.net/FcRpM/在我的笔记本电脑的谷歌浏览器工作,但在移动HTC一个S(android 4.1,GPSclosures,通过移动networking和wifi启用位置),通过WiFi连接到互联网。 默认浏览器正常工作。 Google Chrome,Opera,Yandex.browser for android失败,并显示“Timeout expired”。 其他Android应用程序find我正确的。

在android webview中使用JavaScript

我试图从我的web视图中的JavaScript界面​​开始一个活动。 这个例子显示了一个敬酒。 我怎么可以打电话给class级而不是敬酒? public class JavaScriptInterface { Context mContext; /** Instantiate the interface and set the context */ JavaScriptInterface(Context c) { mContext = c; } /** Show a toast from the web page */ public void showToast(String toast) { Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); } } 这为html页面。 <input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" /> <script type="text/javascript"> function […]

Android 4.2.1,WebView和JavaScript界面​​中断

我有一个web浏览器添加的JavaScript界面​​,大多数设备上运行完美,除了那些运行Android 4.2.1的。 我删除了大部分的代码,并留下了一个非常基本的代码: this.webView.getSettings().setJavaScriptEnabled(true); this.webView.setWebChromeClient(new WebChromeClient()); this.webView.addJavascriptInterface(new Object() { public void handshake() { Log.d("JS", "handshake no params"); } public void handshake(String json) { Log.d("JS", "handshake with params: " + json); } }, "Android"); 在JavaScript的东西的testing代码如下所示: Android.handshake(); 但是我在logcat中得到这个: E / Web控制台:未捕获TypeError:对象[对象对象]没有方法'握手' 再一次,这个相同的确切的东西在我已经testing过的Android操作系统(<4.2.1)的设备中工作正常(最小版本是2.3.3)。 奇怪的是,如果我开始一个全新的项目,除了一个只有一个WebView的Activity,使用相同的代码,即使对于4.2.1,一切都可以正常工作,但是当它是我实际项目的一部分时, 。 没有什么我正在做的webview这是不包括在我提供的代码片段。 对我来说最奇怪的是,javascriptfind了Android对象,但它没有请求的方法(握手),那怎么可能呢? 任何帮助将不胜感激,因为这已经使我疯狂的过去2周左右(这是一个错误,我回到所有的时间,然后放弃等)。 谢谢。

基于多个ScrollViewanimation单个视图

我正在尝试基于多个ScrollView的滚动位置来设置View的animation。 这是屏幕的外观。 上面的屏幕有2个部分 顶部的View组件 底部的TabNavigator组件 TabNavigator中的每个选项卡都有一个ScrollView (在这种情况下,有2个,但可以更多),我想实现的是当用户向下滚动时折叠View ,并在用户向上滚动时展开。 在一个标签上,我做得很好,它正在按照我想要的方式工作,但是当我添加第二个标签时,问题就出现了。 问题 当我在tab1上滚动一下并移动到tab2并尝试滚动时,它会变干。 看到GIF了解我想说什么 更新 查看expo.io上的这个零食,看现场的问题 snack.expo.io/SytBkdBAW 我试过了 App.js export default class App extends Component { constructor (props) { super(props) this.state = { /* omitted – not related */ scrollY: new Animated.Value(0) } } render () { let translateY = this.state.scrollY.interpolate({ inputRange: [0, 600], outputRange: [0, -290], […]