草庐IT

微前端实现方案之iframe

全部标签

javascript - iframe contentDocument 和 contentWindow 为空

我试图在以下代码中访问iframe的contentDocument和contentWindow。但它们都是空的。variframe=document.createElement('iframe');this.get__domElement$i().appendChild(iframe);if(iframe.contentDocument){iframe.contentDocument.write("Hello");}elseif(iframe.contentWindow){iframe.contentWindow.document.body.innerHTML="Hello";}有人能

javascript - 如何检查消息(postMessage)来自哪个跨域iframe?

我知道MessageEvent有source属性,它是发送消息的窗口对象。现在如何让这些信息检查主文档中的哪个iframe(当然还有消息到达的主文档中)是该特定消息的来源?是否只有检查event.source窗口对象上的location.href的可用选项,然后循环所有iframe以检查哪个匹配?如果主文档中存在具有相同源url的iframe怎么办? 最佳答案 遍历页面上的所有iframe并对它们的window对象进行标识比较。window.addEventListener('message',function(e){if(e.or

javascript - 如何在没有 iframe 的情况下创建新的窗口对象?

如何制作新的Window对象,myWindow,独立于window(因此修改例如myWindow.Array.prototype不会影响window.Array.prototype),无需创建?目前我是这样做的functionnewWindow(){varmyFrame=document.createElement('iframe'),myWindow=undefined;myFrame.style.display='none';myFrame.src='javascript:undefined;';document.body.appendChild(myFrame);myWindow

javascript - 使同一域 iframe 安全

tl;dr我可以在iframe上安全地执行不受信任的脚本吗?背景故事:我正在尝试makesecureJSONPrequests.许多旧版浏览器不支持WebWorkers,这意味着我提出的当前解决方案并不是最优的。我想我可以创建一个并在其中加载脚本。该脚本将执行一个JSONP请求(创建一个脚本标签),该请求将向主页发布一条消息。主页会收到消息,执行回调并销毁iframe。我设法dothissortofthing.functionjsonp(url,data,callback){variframe=document.createElement("iframe");iframe.style.

javascript - 是否可以在没有 iframe 和任何 javascript 的情况下使用 reCAPTCHA?

出于安全原因,我们在网络应用程序中禁用了iframe和javascript。现在我们想在登录过程中实现reCAPTCHA。我看到它在页面上嵌入了一个iframe,该页面被禁用,因此无法看到。有没有一种方法可以在不使用iframe或javascript的情况下实现reCAPTCHA? 最佳答案 我正在为没有Javascript的残疾人(即盲人)看这个问题。一个丑陋的解决方案可能是从服务器调用ReCaptcha,获取生成的HTML,将其传递给浏览器,在用户单击时提交表单,然后使用Javascript从您的服务器提交用户的输入。看起来Go

javascript - Chrome 扩展 : identify web requests of background-page iframe?

我正在编写一个Chrome扩展程序,它会代表用户定期检查网页。为了不引人注目,该页面被加载到扩展程序隐藏背景页面上的iframe中。是否可以仅识别此iframe发出的网络请求?我最初的实验(见下文)似乎表明这很棘手。获取特定选项卡的所有Web请求很容易:您拥有tabId,并且可以使用该tabId过滤Web请求(通过WebRequestAPI)。但是对于后台页面iframe,不清楚“tabId等效”标识符是什么,或者如何使用它来过滤Web请求。有什么想法吗?我最初的实验细节如下。frameId值看起来很有希望,但我不认为它在扩展程序中是唯一的。此问题已针对Firefox提出:Identi

javascript - 使用 canvg 将 C3.js SVG 可视化到 Canvas - 折线图填充黑色矩形, "ERROR: Element ' parsererror' 尚未实现”

我正在尝试使用Canvg将SVG转换为Canvas。这是jsfiddle.我收到一条错误消息,“错误:元素‘parsererror’尚未实现”。我可以理解canvg库无法解析SVG元素。但是,这个问题有解决办法吗?我需要从svg元素创建一个Canvas元素。SaveCanvas:varchart={};chart=c3.generate({bindto:'#chart',data:{xs:{'data1':'x1','data2':'x2',},columns:[['x1','2013-01-0103:11:37','2013-01-0203:11:37','2013-02-0303:

javascript - 正则表达式实现负号的奇偶规则

我想用JavaScript编写一个.replace函数来实现代数中负号的奇偶规则。在一系列的消极和积极的迹象中:情况一:如果负号的个数为奇数,则相当于一个负号情况2:如果有偶数个负号,则相当于正号。然后我会执行.replace(/regexforcase1/,"-")和.replace(/regexforcase2/,"+")。关于如何执行此操作的任何想法?以下是示例字符串:\frac{a^{n+-m}}{b}->\frac{a^{n-m}}{b}abc+cde=ghj--+--hsnj->abc+cde=ghj+hsnj 最佳答案

javascript - 将 Observables 实现到持久队列库中

目前正在编写一个小型持久队列库,用于将行读取/写入文本文件。这是添加方法,例如:Queue.prototype.add=function(line,cb){getLock(this,err=>{if(err){this.emit('error',err);releaseLock(err,cb);}else{fs.appendFile(this.filepath,line,err=>{err&&this.emit('error',err);releaseLock(err,cb);});}});};我觉得很尴尬的是支持事件发射器和回调(或事件发射器和promise)。换句话说,对于队列中的

javascript - 使用箭头键和智能延迟加载实现有机列表浏览

简单场景我有一个列表,我实现了使用箭头键(向上、向下)进行浏览,并且在当前列表项的每次更改时,都会通过AJAX加载一个数据库对象。甜蜜的。问题当用户快速浏览列表时,我不希望每个请求都关闭。但当然,最初的请求应该立即关闭。我的想法是使用变量作为延迟来设置超时,并在项目初始加载后增加该变量。这行得通,但是当用户暂时停止浏览但随后继续浏览时,我仍然不希望每个请求都关闭。所以我想,延迟变量必须随着每次浏览事件而合理增加,直到达到阈值。这种有机的方法将成功地减少不必要的元素加载量。我的解决方案我来得很远。这段代码(下面的解释)将完成这项工作,有一个主要罪魁祸首:第一次浏览完成然后停止后,延迟将自