Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在chrome中使用javascript将iFrame src属性设置为编码数据URI_Javascript_Html_Google Chrome - Fatal编程技术网

在chrome中使用javascript将iFrame src属性设置为编码数据URI

在chrome中使用javascript将iFrame src属性设置为编码数据URI,javascript,html,google-chrome,Javascript,Html,Google Chrome,我正试图编写一个iFrame作为chrome浏览器内HTML/Javascript/CSS IDE的测试区域,但由于某些错误,我丢失了很多功能,我想知道是否有人能告诉我如何将iFrame的.src属性设置为URL,并将HTML Javascript CSS etc代码直接编码在.src属性中。不要告诉我这是不可能的,因为我知道它可以,我刚刚丢失了找到这个方法的网页。另外,作为旁注,是否可以通过编程强制刷新此iFrame 谢谢你抽出时间 Chris刷新iframe: document.getEle

我正试图编写一个iFrame作为chrome浏览器内HTML/Javascript/CSS IDE的测试区域,但由于某些错误,我丢失了很多功能,我想知道是否有人能告诉我如何将iFrame的.src属性设置为URL,并将HTML Javascript CSS etc代码直接编码在.src属性中。不要告诉我这是不可能的,因为我知道它可以,我刚刚丢失了找到这个方法的网页。另外,作为旁注,是否可以通过编程强制刷新此iFrame

谢谢你抽出时间

Chris

刷新iframe:

document.getElementById('iframeid').src = document.getElementById('iframeid').src

iframeEl.src=“data:text/html;charset=utf-8,”+内容

根据我的研究,这似乎被认为是一种安全风险,因此在所有浏览器中都是不允许的

摘录:

仅以下元素和/或属性支持数据URI

  • 对象(仅限图像)
  • img
  • 输入类型=图像
  • 链接
  • 接受URL的CSS声明,如背景、背景图像等
HTML5安全备忘单:

是的,可以完成-请参阅

请注意,iframe将与原始页面具有相同的来源,这可能不是所需的,并且可能会有严重的安全考虑,具体取决于您正在执行的操作

这里有一个使用javascript:scheme技术的例子:(如果与https一起使用,则需要额外的谷歌搜索和良好的测试,以检查是否永远不会出现混合的https/http警告。)

使用该属性,您只需在其中敲打原始HTML即可


document.getElementById('dynamic').srcdoc='there';
适用于除MS浏览器以外的所有浏览器。

使用可使其更安全。

首先为什么需要这样做?您指的是什么bug?如果我只是通过标准DOM编辑iFrames内容,Javascript将无法正常执行。@Pekka,对不起。也许我没有正确地解释它,但我看到过一些示例,其中iFrame的src属性被text/html类型的数据URI替换。如果有人能至少告诉我如何将iFrames.src属性设置为从Javascript字符串编码的数据URI/URL的页面,我可以试着找出其余部分。求你了,我还没弄明白这个。这是在Internet Explorer中——对于许多用途来说,这是一个强有力的反驳。我不确定这是否是解决您的问题的正确方法如果您需要支持IE,就不能使用数据URI-请看,我使用的是[“src”=“data:text/html;charset=utf-8,”+content]方法,并且在大多数情况下都有效。然而,当内容超过一定长度时,chrome将拒绝显示内容。这种方法甚至适用于大型内容,因此至少在这方面它是优越的。我希望如此,它是为目的而设计的,而不是一种变通方法。很高兴看到恢复旧线程仍然帮助人们