草庐IT

javascript - 我可以使用 phantomjs/casperjs 获取原始页面源代码(与当前 DOM 相比)吗?

我正在尝试获取特定网页的原始来源。该页面在加载后立即执行一些修改DOM的脚本。我想在任何脚本或用户更改文档中的任何对象之前获取源代码。使用Chrome或Firefox(可能还有大多数浏览器),我可以查看DOM(调试实用程序F12)或查看原始源代码(右键单击,查看源代码)。后者是我想要完成的。是否可以用phantomjs/casperjs做到这一点?在进入页面之前,我必须登录。这在casperjs上运行良好。如果我浏览到该页面并呈现结果,我就知道我在正确的页面上。casper.thenOpen('http://'+customUrl,function(response){this.pag

javascript - 在 jQuery 选择器中混合逻辑 AND 和 OR

我必须过滤包含两个关键数据属性的项目列表:Freedom类别标签按类别过滤应该是逻辑OR但按标签过滤应该是逻辑AND。使用这两者之一进行过滤不是问题。我申请了,例如:$(collection).filter('li[data-tags*="tag-50-eot"][data-tags*="tag-51-eot"]');按标签过滤。或者:$(collection).filter('[data-category="1"],[data-category="2"]);按类别过滤。这很好用。但是,我找不到一种方法将这两个选择器组合成一个我可以传递给filter()函数的查询,并且链接两个filt

javascript - 使用 ajaxSubmit 替换 DOM 部分时,我应该如何处理 tinyMCE?

在多标签页上,一些标签submit过程通过ajaxSubmit更改其他标签的内容。如果另一个选项卡包含事件的tinyMCE编辑在替换它的内容之前我应该​​对该选项卡做什么以及在替换之后我应该做什么(如果有的话)?当前代码在目标选项卡中的所有编辑器上执行tinyMCE.execCommand("mceRemoveControl",true,ed_id);并依赖系统的正常功能在更改后将它们恢复.这就是必要的吗?更改后,我在tinyMCE代码中遇到不明异常,但很难发现原因。错误本身是SCRIPT5022:IndexSizeError-tiny_mce.js(1,78075)但我怀疑这是否特别

javascript - addEventListener 内存泄漏

通过addEventListener注册事件时在一个元素上,然后在不删除事件的情况下删除该元素,并反复这样做,内存会“泄漏”吗? 最佳答案 它不应该泄漏。当事件处理程序导致主机对象JS对象循环时,一个臭名昭著的浏览器是IE(最高版本7),而IE(最高版本8)不支持addEventListener.如果您想在特定浏览器中对其进行测试,请让它继续运行并查看浏览器的内存使用量在长期内受到的影响。functionreplace(){varx=document.getElementById('x');if(x.firstChild!==nul

javascript - 您如何以编程方式确定 HTML 对象可以监听哪些事件?

我一直在查看developer.mozilla.org上的文档和Apple开发文档,但我找不到说明您是否可以通过编程方式确定特定HTML标记是否支持给定eventListener的文档。就像我知道标签不支持点击监听器,因为没有什么可以点击,但我怎么知道呢?或者除此之外,是否有关于每个标签支持哪些事件的简单引用? 最佳答案 根据PerfectionKills,除了少数极端情况,是的,您可以:Thetrickisthatmanymodernbrowsersreportpropertycorrespondingtoaneventnamea

javascript - Chrome 扩展 : Replace HTML before loading the page

我有一个关于如何使用Chrome扩展程序更改网页的问题。阅读一些信息后,我认为问题是如何操作DOM。假设我用Chrome打开www.stackoverflow并想替换以下代码行:并将其替换为:我的问题不是这样做是否明智,而是如何去做? 最佳答案 尝试修改list文件的run_at字符串。在“document_start”的情况下,文件在来自css的任何文件之后注入(inject),但在构建任何其他DOM或运行任何其他脚本之前。https://developer.chrome.com/docs/extensions/mv2/conte

javascript - $(window).blur 事件影响 Iframe

我想检测用户何时离开我的页面(例如打开一个新标签页),以便我可以停止倒计时。我使用:$(window).blur(function(){//stopcountdown});但是我的页面中有一个Iframe,当用户点击它时倒计时也会停止,但我不希望当有人点击Iframe时执行上述事件。有什么想法吗?更新,我正在尝试更多,基于这个答案Click-eventoniframe?:iframeDoc=$('iframe').contents().get(0);$(iframeDoc).click(function(){//mayberemoveblurevent?});更新:TimB解决方案有效

javascript - 是否可以在不将视频文件添加到 DOM 的情况下预加载和缓存视频文件?

我正在开发一款游戏,该游戏涉及根据您获得的结果触发30个小视频文件中的一个。由于视频需要在用户交互后立即播放,理想情况下我希望预加载视频并准备就绪。我已经添加了PreloadJS,排队了我需要的所有Assets。查看检查器中的“网络”选项卡,我可以看到加载屏幕上正在传输所有20mb的视频。但是,当需要播放剪辑时,似乎是重新下载它们而不是从内存中播放它们......我认为一旦文件被下载,它们就会留在浏览器缓存中,一旦我尝试加载具有相同src的文件,它就会从下载资源池中提取它,但这不是'好像不是这样的……知道如何在不向页面添加30个视频播放器的情况下将下载的文件保存在内存中吗?谢谢!蒙古包

JavaScript : Fastest way to insert DOM element in sort order

所以我有几个(~30)个返回数据的异步调用(每个调用~25条记录),我想按特定顺序显示这些数据。目前,页面等待所有内容加载,对单个内部数组进行排序,然后添加DOM元素(每个数据项都应用于HTML模板/字符串,该模板/字符串被有效地连接并添加一次到父元素的innerHTML).我希望将数据插入每个数据集(当它返回时)...但这意味着我需要一种不同的方式来处理排序/排序。我考虑过的方法:理想情况下,将DOM镜像到某种B树中,这样INSERT操作就可以遍历树,寻找正确的元素插入之前/插入之后...因为我还没有看到任何库来解决这种需要,看来我最终会写一些代码。相对而言,手动迭代DOM以寻找要插

javascript - IE 中的 InnerHTML/outerHTML 不反射(reflect)复选框状态,但在怪癖模式下除外

我目前正在与一个IEJavaScript/DOM错误作斗争(这很有趣),它确实难倒了我。有问题的代码将一些复选框复制到一个表单中,并且需要维护它们的选中状态。问题是,IE(特别是IE8,虽然我猜其他人也是如此)不想这样做。我已将错误本身缩小到一个非常小的测试用例。基本上,页面上没有DOCTYPE时一切正常,但当存在DOCTYPE时它们会被破坏。我的预料恰恰相反,但谁知道IE。以下是最简单的测试用例。对于它们中的每一个:在IE中打开页面,切换复选框,然后单击“测试”。不产生错误:TESTdocument.getElementById('break').onclick=function()