我想要实现的是通过传递一个大的html字符串来使用jquery来操作使用DOM创建的文档.请考虑以下示例:
var doctype = document.implementation.createDocumentType( 'html', '', '');
var dom = document.implementation.createDocument('', 'html', doctype);
dom.documentElement.innerHTML = '<head><head><title>A title</title></head><body><div id="test">This is another div</div></body>';
Run Code Online (Sandbox Code Playgroud)
这将在dom中创建一个新文档,并提供内容.现在我想使用jquery追加让我们说现有div中的div.
$('#test',dom).append('<div> A second div</div>');
console.log(dom);
Run Code Online (Sandbox Code Playgroud)
当我在控制台中打印结果时,似乎'dom'的innerHTML没有改变.从jquery的API文档,http://api.jquery.com/jQuery/更具体的"jQuery(selector [,context])"函数应该允许这个.
由于有人可能会争论使用控制台进行调试,因此我在下面提供了另一部分不起作用的代码:
$('body').append($('#test',dom));
Run Code Online (Sandbox Code Playgroud)
在chrome和firefox中测试过,它不能与最新的jquery库一起使用.
为Chrome扩展程序创建清单文件时,有一个选项all_frames
允许将内容脚本注入顶部框架/ iframe,或者全部注入.
我希望此行为停止在某个特定级别(例如,2).有没有办法指定它,最好是在清单上?或者至少在实际脚本中有黑客攻击?
问题可能被翻译为:"是否可以知道HTML文档中框架的深度?
javascript iframe frame google-chrome-extension content-script