Questions tagged «javascript»

有关在ECMAScript(JavaScript / JS)及其各种方言/实现(不包括ActionScript)中进行编程的问题。此标记很少单独使用,但最常与标记[node.js],[jquery],[json]和[html]关联。

30
PhoneGap:检测是否在桌面浏览器上运行
我正在开发一个将PhoneGap:Build用于移动版本的Web应用程序,并希望针对“桌面”和移动版本使用单个代码库。我希望能够检测到PhoneGap呼叫是否可以正常工作(即,在支持PhoneGap的移动设备上的用户)。 我已经搜索过,无法相信没有简单的方法可以做到这一点。许多人提出了建议。 http://www.sencha.com/forum/showthread.php?144127-Checking-if-running-in-PhoneGap-or-Mobile-Web-Browser http://groups.google.com/group/phonegap/browse_thread/thread/322e80bd41bb1a54/a421300eb2a2029f?lnk=gst&q=detect+desktop#a421300eb2a2029f http://groups.google.com/group/phonegap/browse_thread/thread/8a95dfeb0f313792/3ff10d8f35211739?lnk=gst&q=detect+desktop+browser#3ff10d8f35211739 除非您从应用程序的桌面版本中删除PhoneGap Javascript文件,否则所有这些都不起作用,这违背了我拥有一个代码库的目标。 到目前为止,我想出的唯一解决方案是浏览器/用户代理嗅探,但这至少可以说是不可靠的。欢迎任何更好的解决方案! 编辑:稍微好一点的解决方案是尝试在一些小的超时后调用PhoneGap函数-如果它不起作用,则假定用户在桌面Web浏览器上。

4
来自其他控制器的指令控制器中的调用方法
我有一个具有自己的控制器的指令。请参见以下代码: var popdown = angular.module('xModules',[]); popdown.directive('popdown', function () { var PopdownController = function ($scope) { this.scope = $scope; } PopdownController.prototype = { show:function (message, type) { this.scope.message = message; this.scope.type = type; }, hide:function () { this.scope.message = ''; this.scope.type = ''; } } var linkFn = function (scope, lElement, …

6
如何在一页中定义两个角度应用程序/模块?
我正在尝试将两个有角度的应用程序/模块添加到一页。在下面的小提琴中,您可以看到始终只有html代码中引用的第一个模块可以正常工作,而第二个模块不能被angular识别。 在这个小提琴中,我们只能执行该doSearch2方法,而在这个小提琴中,仅该doSearch方法可以正常工作。 我正在寻找如何将两个角度模块正确放置到一页中的方法。

8
适用于所有浏览器的Object.watch()吗?
请注意,Object.Watch和Object.Observe现在都弃用(如2018年6月的)。 我一直在寻找一种监视对象或变量更改的简便方法,我发现Object.watch()Mozilla浏览器支持,但IE不支持。所以我开始四处搜寻,看看是否有人写过类似的东西。 我唯一发现的就是jQuery插件,但我不确定这是否是最好的方法。我当然在我的大多数项目中都使用jQuery,所以我不必担心jQuery方面的问题。 无论如何,问题是:有人可以向我展示该jQuery插件的有效示例吗?我在使其工作时遇到问题... 还是有人知道跨浏览器更好的替代方法吗? 回答后更新: 感谢大家的回应!我尝试了发布在此处的代码:http : //webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html 但是我似乎无法使其与IE一起使用。下面的代码在Firefox中可以正常工作,但在IE中则不起作用。在Firefox中,每次watcher.status更改都会调用document.write()in watcher.watch(),您可以在页面上看到输出。在IE中,这不会发生,但是我可以看到它watcher.status正在更新值,因为最后一次document.write()调用显示了正确的值(在IE和FF中)。但是,如果没有调用回调函数,那是没有意义的... :) 我想念什么吗? var options = {'status': 'no status'}, watcher = createWatcher(options); watcher.watch("status", function(prop, oldValue, newValue) { document.write("old: " + oldValue + ", new: " + newValue + "<br>"); return newValue; }); watcher.status = 'asdf'; watcher.status = '1234'; document.write(watcher.status + …

1
为什么JavaScript中Math.pow()(有时)不等于**?
我刚刚发现ECMAScript 7功能可以a**b作为Math.pow(a,b)(MDN参考)的替代产品,并且在该帖子中遇到了一个讨论,在这些讨论中它们的行为显然有所不同。我已经在Chrome 55中对其进行了测试,可以确认结果是否有所不同。 Math.pow(99,99) 退货 3.697296376497263e+197 而 99**99 退货 3.697296376497268e+197 因此记录差异会Math.pow(99,99) - 99**99导致-5.311379928167671e+182。 到目前为止,可以说这只是另一个实现,但是将其包装在函数中的行为又有所不同: function diff(x) { return Math.pow(x,x) - x**x; } 打电话diff(99)的回报0。 为什么会这样呢? 正如xszaboj所指出的,可以缩小到这个问题: var x = 99; x**x - 99**99; // Returns -5.311379928167671e+182

26
如何使用jQuery检查所有复选框?
我不是jQuery专家,但是我尝试为我的应用程序创建一个小脚本。我想选中所有复选框,但无法正常工作。 首先,我尝试使用attr,然后尝试使用,prop但是我做错了什么。 我首先尝试了这个: $("#checkAll").change(function(){ if (! $('input:checkbox').is('checked')) { $('input:checkbox').attr('checked','checked'); } else { $('input:checkbox').removeAttr('checked'); } }); 但这没有用。 下一步:这比上面的代码效果更好 $("#checkAll").change(function(){ if (! $('input:checkbox').is('checked')) { $('input:checkbox').prop('checked',true); } else { $('input:checkbox').prop('checked', false); } }); 这两个示例都不起作用。 JSFiddle:http : //jsfiddle.net/hhZfu/4/

5
将HTML插入div
我正在尝试将HTML片段插入div。我想看看普通的JavaScript方法是否比使用jQuery更快。不幸的是,我忘记了如何以“旧”方式进行操作。:P var test2 = function(){ var cb = function(html){ var t1 = document.getElementById("test2"); var d = document.createElement("div"); d.id ="oiio"; d.innerHtml = html; t1.appendChild(d); console.timeEnd("load data with javascript"); }; console.time("load data with javascript"); $.get("test1.html", cb); } 伙计们,我在做什么错? 编辑: 有人问哪个更快,jQuery或纯js,所以我写了一个测试:http : //jsperf.com/html-insertion-js-vs-jquery 纯js快10%
118 javascript 


5
AngularJS:将服务注入HTTP拦截器(循环依赖)
我正在尝试为AngularJS应用编写HTTP拦截器以处理身份验证。 这段代码有效,但是我担心手动注入服务,因为我认为Angular应该自动处理此问题: app.config(['$httpProvider', function ($httpProvider) { $httpProvider.interceptors.push(function ($location, $injector) { return { 'request': function (config) { //injected manually to get around circular dependency problem. var AuthService = $injector.get('AuthService'); console.log(AuthService); console.log('in request interceptor'); if (!AuthService.isAuthenticated() && $location.path != '/login') { console.log('user is not logged in.'); $location.path('/login'); } return config; } }; …


2
如何获取请求有效载荷
我正在使用PHP,ExtJS和ajax存储。 它不通过POST或GET发送数据(在创建,更新,销毁时)。在Chrome控制台中,我在“ 请求有效负载 ”字段中看到我的传出参数为JSON 。$ _POST 和$ _GET为空。 如何在PHP中检索它?
118 php  javascript  json  extjs 



15
Firefox尽管标头却“跨域请求被阻止”
我正在尝试提出一个简单的跨域请求,而Firefox始终通过此错误阻止它: 跨域请求被阻止:同源策略禁止读取[url]处的远程资源。可以通过将资源移至同一域或启用CORS来解决此问题。[网址] 它可以在Chrome和Safari中正常运行。 据我所知,我已经在PHP上设置了所有正确的标头,以使其正常工作。这是我的服务器响应的内容 HTTP/1.1 200 OK Date: Mon, 23 Jun 2014 17:15:20 GMT Server: Apache/2.2.22 (Debian) X-Powered-By: PHP/5.4.4-14+deb7u8 Access-Control-Allow-Origin: * Access-Control-Allow-Methods: GET, POST, OPTIONS Access-Control-Allow-Headers: Content-Type Access-Control-Request-Headers: X-Requested-With, accept, content-type Vary: Accept-Encoding Content-Length: 186 Content-Type: text/html 我尝试使用Angular,jQuery和基本的XMLHTTPRequest对象,如下所示: var data = "id=1234" var request = new XMLHttpRequest({mozSystem: true}) request.onload = …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.