Tag: dom

创buildvideo播放器(Quicktime浏览器插件)React Elements,输出缺less的video属性

这是代码: render: function () { switch (this.state.mime) { case "image": return React.createElement("img", React.__spread({}, this.props, { className: "img-responsive", src: this.state.url })); case "iframe": return React.createElement("iframe", React.__spread({}, this.props, { src: this.state.url })); case "rtmp": return React.createElement("embed", React.__spread({}, this.props, { src: this.state.streamUrl, type: "video/quicktime", autoPlay: true, qtsrc: this.state.streamUrl, target: "myself", scale: "tofit", controller: false, pluginspage: "http://www.apple.com/quicktime/download/", loop: "false" […]

在不使用jQuery的情况下获取HTML中的选定选项

我在每个<option>上使用以下函数来确定它是否被选中: var _matches = function(el, selector) { var fn = el.matches || el.matchesSelector || el.msMatchesSelector || el.mozMatchesSelector || el.webkitMatchesSelector || el.oMatchesSelector; return fn.call(el, selector); }; 它在jsdom中工作正常,并且对于select器起作用:checked在浏览器中:checked (在checkboxinput上),而不是对于select器:selected ,这是奇怪的。 我收到错误(在Chrome中): 未捕获SyntaxError:未能执行“元素”上的“匹配”:“:已select”不是有效的select器。

从Electronsubprocess访问DOM树

我在Windows 10上使用Electron(v1.2.2),我的一个项目有一个很大的问题: 我有一个脚本,进入渲染过程,并创buildsubprocess运行一些特殊的代码。 我需要运行在subprocess内的代码来访问DOM。 当创build进程(使用child_process.fork())时,我使用内置IPC通道发送一些信息,例如时间戳,有关将在subprocess内部运行的脚本的一些信息。 但是当我尝试发送一个类的实例时,它根本不起作用: //main.js const child_process = require('child_process'); const child = child_process.fork('child.js'); child.send({ready: { version: '0.0.1', dom: document }}); // child.js process.on('message', (m) => { typeof m.dom.body.appendChild; // ReferenceError }); 我想这是IPC通信的限制,只能传输一些特定的数据,但我知道可以使用IPC通道发送服务器或套接字实例,所以我不明白为什么传输文档是不可能的。 所以我正在寻找一种方法来访问subprocess的DOM,但我没有find任何解决scheme。 subprocess内部的代码需要在DOM上做很多操作,不能用IPC通信来访问,否则性能会太慢。 所以,我的问题是:有什么办法从subprocess访问DOM?

我想创build一个下载button,但文件不下载?

我正在创build请求服务器下载文件的点击监听器的下载button 代码点击侦听器: downloadFileClick(event){ $.ajax('/download', {data:{}}).done(function(data){ }.bind(this)); } 在服务器端下面的代码正在运行 app.get('/download', function(req, res){ var file = __dirname + '/write/imageout.png'; res.download(file); }); 文件不在浏览器中下载。 我检查了从服务器发送给客户端的响应,它发送文件内容,但不从浏览器下载。

技术为服务器端DOM操作(Java与节点)

我正在做一个POC,在将HTML内容提供给客户端/浏览器之前,我必须处理DOM。 一些用例: 在html页面中注入一个javascript,这个javascript是客户特定的。 根据用户以前select的主题注入样式表。 …更多这样的情况下有一些业务逻辑。 我已经完成了所有的使用案例。 我已经使用Jsoup在Java中实现了它。 我也在Node Js中完成了。 我必须决定select哪种技术? 有没有人知道这两种技术的优点/缺点? 请build议我应该如何testing哪两个更好。 任何可用于testing内存使用的工具/资源使用情况/所花费的时间等。虽然我已经计算了两种情况下的时间。 PS:请随意推荐任何其他技术的服务器端DOM操作和工具来testing其性能和内存。

如何删除htmlparse的一部分?

我做了一个网页的htmlparse,我得到了这个块的页面的DOM: { raw: 'td', data: 'td', type: 'tag', name: 'td', children: [ { raw: '600', data: '600', type: 'text' } ] }, 我怎样才能删除该htmlparse的所有types的“文本”? 谢谢。

在JS中parsing远程DOM

我想获得一个远程网站的DOM,并能够parsing它,理想情况下,将parsing的结果转换成一个DOM节点,并从中有效地获取所需的元素,然后处理它们。 也就是说,我想从检索到的DOM中切出某些元素,并将它们存储在数组中以便进一步操作。 它实际上是可以实现的吗? 到目前为止,我已经与这个: import request from 'request'; export default function getBody(url, callback) { request(url, (err, res, body) => { callback(body); }); } 并在path文件夹中: import express from 'express'; import getBody from '../server'; const router = express.Router(); const url = 'http://www.google.com'; let result = {}; getBody(url, response => { result = response; }); router.get('/', (req, res, […]

使用partialreplace存储为string的html元素

我使用node.js从一个API拉入HTML,我将它存储在一个variables之前,我显示它。 我需要replace该HTMLstring中的链接,但我只能使用链接的前部进行search,因为它们将是dynamic的。 我发现了一个使用document.querySelectorAll("a[href^='http://somelink.com/12345678']") Javascript getElement的href? 但是我没有使用DOM。 需要删除/replace的dynamic链接: <a href="http://somelink.com/12345678-asldkfj>Click Here</a> <a href="http://somelink.com/12345678-clbjj>Click Here</a> <a href="http://somelink.com/12345678-2lksjd>Click Here</a> 我可以search的是: <a href="http://somelink.com/12345678 我需要更改实际的链接名称“单击此处”或删除元素。 任何想法如何实现与纯JS的这个? 最初,我想也许有一种方法来创build一个假/临时DOM? 编辑:用我的代码修改下面的答案,它正是我所需要的。 var str = '<a href="http://somelink.com/12345678-asldkfj">Click Here</a><a href="http://somelink.com/12345678-clbjj">Click Here</a><a href="http://somelink.com/12345678-2lksjd">Click Here</a>'; var div = document.createElement("div"); div.innerHTML = str; var links = div.querySelectorAll("a[href^='http://somelink.com/12345678']"); for(i=0; i<links.length; i++) { if(links[i]) { str = str.replace(links[i].outerHTML, 'New Name'); […]

EventListener存储在哪里?

HHi大家 有人知道在哪里存储事件当我们使用addEventListener方法? 例如: window.addEventListener('mousedown', this.myvar.onClick ); 没关系,但我试图find它的存储位置? 我尝试检查 windows.event windows.Event() console.dir(window.addEventListener) window._debugWindow window.dispatchEvent() // … many other try 我发现无法检查当前数据侦听器存储在哪里。 我需要有名单|| 注册debugging感谢帮助 已解决编辑:

比较两个相等节点的childNodes返回false,比较它们的innerHTML返回true,为什么?

我正在构build一个比较Node.js中两个DOM的非常基本的函数,我打算不仅要检测差异,还要确定确切的区别。 令人惊讶的是,当我使用两个相等的DOM(使用jsdom重build)时,比较节点的childNodes在使用childNodes时返回false,在使用innerHTML时为true。 const checkForUpdates = function(website) { let oldDom = new JSDOM(website.storedPage.page); oldDom = oldDom.window.document.querySelector('body'); let newDom = new JSDOM(website.newPage.page); newDom = newDom.window.document.querySelector('body'); const startChecking1 = function(someDom, anotherDom) { return someDom.childNodes === anotherDom.childNodes; // This returns false }; const startChecking2 = function(someDom, anotherDom) { return someDom.innerHTML === anotherDom.innerHTML; // This returns true }; console.log(startChecking(oldDom, newDom)); […]