Tag: JavaScript

如何检测DOM准备好,并添加一个没有jQuery的类?

我想重写这一行,而不使用jQuery,所以可以更快地应用(和下载jQuery库之前)。 这条线是… $(document).ready(function() { $('body').addClass('javascript'); }); 如果我把它添加到html元素,我可以离开DOM准备好的部分? 这个问题的一个问题是validation器不喜欢html元素的class属性,即使它是用JS插入的。 那么,我将如何重写没有jQuery?

JavaScript中的间接函数调用

有东西像 f.call(…) f.apply(…) 但是,那是这样的 (1, alert)('Zomg what is this????!!!11') “1”在这种情况下似乎没有多大意义,下面的工作就好了: (null, alert)('Zomg what is this????!!!11') (1, null, alert)('Zomg what is this????!!!11') (undefined, alert)('Zomg what is this????!!!11') 你能指出一个描述语法的ECMAScript的特定部分吗?

我怎样才能检测到一个JavaScript的地址栏更改?

我有一个Ajax沉重的应用程序,可能有一个URL如 http://example.com/myApp/#page=1 当用户操纵网站时,地址栏可以变成类似的东西 http://example.com/myApp/#page=5 无需重新加载页面。 我的问题是以下顺序: 用户对第一个URL进行书签。 用户操纵应用程序,使第二个URL是当前状态。 用户点击在步骤1中创build的书签。 地址栏中的url从http://example.com/myApp/#page=5更改为http://example.com/myApp/#page=1 ,但我不知道如何检测发生了变化。 如果我检测到一个变化,一些JavaScript会作用于它。

jQuery / JavaScript“这个”指针混淆

当这个functionbar被调用时,“this”的行为让我感到困惑。 请参阅下面的代码。 有没有什么办法来安排“这个”是一个简单的老js对象实例时,从一个点击处理程序调用栏,而不是HTML元素? // a class with a method function foo() { this.bar(); // when called here, "this" is the foo instance var barf = this.bar; barf(); // when called here, "this" is the global object // when called from a click, "this" is the html element $("#thing").after($("<div>click me</div>").click(barf)); } foo.prototype.bar = function() { alert(this); […]

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周左右(这是一个错误,我回到所有的时间,然后放弃等)。 谢谢。

短轮询与长轮询实时Web应用程序?

我正在构build一个实时的Web应用程序据我所知,最受欢迎的select是短轮询和长轮询。 衡量一个在另一个之间有什么优点和缺点?

为什么在v2不执行的时候d3js v3在执行缩放时会破坏我的强制graphics?

我有一个使用d3.js创build的强制布局 我想同时具有可拖动力布局的正常function以及缩放能力。 我基本上从这个( http://jsfiddle.net/nrabinowitz/QMKm3/ )代码复制/粘贴缩放代码。 这与迈克·博斯托克(Mike Bostock)在这个例子中使用的缩放方法是一样的( http://bl.ocks.org/mbostock/3680957 )。 这是我的代码: http : //jsfiddle.net/kM4Hs/6/ 正如我可以清楚地看到,缩放工作正常,但我无法在力布局中select单个节点,并拖动它们。 我已经发现,其他作者都使用d3.v2.js而不是我正在使用的新版本的d3.v3.js。 当我改变我的导入到V2,它完美的作品。 但是,为了进步和普遍良好的代码性,我想尽可能使用v3。 <script type='text/javascript' src='http://d3js.org/d3.v3.min.js'></script> versus <script type='text/javascript' src='http://d3js.org/d3.v2.min.js'></script> 两个问题:为什么v3在v2没有时打破力布局,更重要的是,我能做些什么来解决这个问题? 提前致谢!

卸载事件是否可以用来可靠地启动ajax请求?

我需要一种方法来监视用户编辑会话,我正在审查的解决scheme之一将使我使用unload事件来发送一个Ajax请求通知服务器的编辑会话结束。 (请参阅: 监视用户会话以防止编辑冲突 ) 我的(相当有限的)读取unload事件表明,这个处理程序附加的代码必须快速运行,因此通常用于清除对象以防止内存泄漏。 我的问题是,这可以为此目的可靠地工作吗? PS。 我知道关于async: false选项。

JavaScript中<head>还是之前</ body>?

我即将开始一个新的Web项目,并计划使用以下scheme将我的JS脚本放在头部和尾部之前: 页面用户体验必不可less的脚本是头等大事。 正如我已经仔细阅读网页 – 头部的脚本在页面加载之前被加载,所以在那里放置对用户体验至关重要的脚本是有意义的。 对于页面的devise和UX(Google Analytics(分析)脚本等)而言不重要的脚本会放在</body> 。 这是一个明智的做法吗? 另一种方法是将所有脚本放在<head> ,并将延迟属性添加到非必要脚本中 – 但是我已经读过旧版本的FF没有select延迟属性。

jQuery“创build”事件dynamic创build的元素

我需要能够dynamic地创build<select>元素,并把它变成jQuery .combobox() 。 这应该是元素创build事件,而不是一些“点击”事件,在这种情况下,我可以使用jQuery .on() 。 那么这样的事情存在吗? $(document).on("create", "select", function() { $(this).combobox(); } 我不愿意使用livequery,因为它非常过时。 更新提到的select/combobox通过ajax加载到一个jQuery的colorbox(模式窗口),因此,问题 – 我只能启动combobox使用colorbox onComplete ,但是改变一个combobox另一个select/combobox必须dynamic创build,因此,我需要一个更通用的方法来检测元素的创build(在这种情况下select )。 UPDATE2为了进一步尝试和解释问题 – 我有recursion创buildselect/combobox元素,里面还有很多启动代码.combobox() ,因此如果我使用经典的方法,就像在@ bipen的答案 ,我的代码会膨胀到疯狂的水平。 希望能更好地解释这个问题。 UPDATE3谢谢大家,我现在明白,由于DOMNodeInserted弃用有一个遗留在DOM变异的空白,并没有解决这个问题。 我只需要重新考虑我的申请。