超全模态模型 × Harness 升级,升级解锁 ArkClaw,最新支持 DeepSeek-V4 系列与 GLM-5.1
标签加载的外部HTML是一个独立的浏览上下文,拥有自己的DOM和样式环境,主页面的样式默认无法直接作用于它,不过可以根据同源情况分别处理:同源场景(外部HTML与主页面同域名/协议/端口) #这种情况下可以通过JavaScript访问的contentDocument对象,直接给外部文档注入样式:实现示例 #<html> <head> <!-- 主页面自身样式 --> </head> <body> ...regular page... <object id="externalObj" type="text/html" data="external-uri.html"></object> <script> const externalObj = document.getElementById('externalObj'); // 必须等待<object>加载完成后再操作 externalObj.addEventListener('load', () => { // 方法1:注入完整样式表 const styleSheet = document.createElement('style'); styleSheet.textContent = 'span { background-color: coral !important; }'; externalObj.contentDocument.head.appendChild(styleSheet); // 方法2:直接选中元素修改行内样式 // const spans = externalObj.contentDocument.querySelectorAll('span'); // spans.forEach(span => span.style.backgroundColor = 'coral'); }); </script> </body> </html> 注意:一定要在load事件触发后再访问contentDocument,否则外部文档还未加载完成,会获取到null或无法操作。跨源场景(外部HTML与主页面不同源) #受浏览器同源策略限制,主页面无法直接访问的内部文档,也没法强制注入样式。这种情况下只有两种可行思路:直接修改外部HTML文件的样式代码;让外部页面配合实现:主页面通过postMessage发送样式指令,外部页面监听消息并自行添加样式(需要外部页面有对应的处理逻辑)。补充说明 #你之前写的object span选择器无效,是因为它只能选中主页面DOM中<object>标签直接包含的<span>元素,而无法穿透到加载的独立文档DOM树中。内容的提问来源于stack exchange,提问作者Skary
这种情况下可以通过JavaScript访问的contentDocument对象,直接给外部文档注入样式:实现示例 #<html> <head> <!-- 主页面自身样式 --> </head> <body> ...regular page... <object id="externalObj" type="text/html" data="external-uri.html"></object> <script> const externalObj = document.getElementById('externalObj'); // 必须等待<object>加载完成后再操作 externalObj.addEventListener('load', () => { // 方法1:注入完整样式表 const styleSheet = document.createElement('style'); styleSheet.textContent = 'span { background-color: coral !important; }'; externalObj.contentDocument.head.appendChild(styleSheet); // 方法2:直接选中元素修改行内样式 // const spans = externalObj.contentDocument.querySelectorAll('span'); // spans.forEach(span => span.style.backgroundColor = 'coral'); }); </script> </body> </html> 注意:一定要在load事件触发后再访问contentDocument,否则外部文档还未加载完成,会获取到null或无法操作。跨源场景(外部HTML与主页面不同源) #受浏览器同源策略限制,主页面无法直接访问的内部文档,也没法强制注入样式。这种情况下只有两种可行思路:直接修改外部HTML文件的样式代码;让外部页面配合实现:主页面通过postMessage发送样式指令,外部页面监听消息并自行添加样式(需要外部页面有对应的处理逻辑)。补充说明 #你之前写的object span选择器无效,是因为它只能选中主页面DOM中<object>标签直接包含的<span>元素,而无法穿透到加载的独立文档DOM树中。内容的提问来源于stack exchange,提问作者Skary
contentDocument
<html> <head> <!-- 主页面自身样式 --> </head> <body> ...regular page... <object id="externalObj" type="text/html" data="external-uri.html"></object> <script> const externalObj = document.getElementById('externalObj'); // 必须等待<object>加载完成后再操作 externalObj.addEventListener('load', () => { // 方法1:注入完整样式表 const styleSheet = document.createElement('style'); styleSheet.textContent = 'span { background-color: coral !important; }'; externalObj.contentDocument.head.appendChild(styleSheet); // 方法2:直接选中元素修改行内样式 // const spans = externalObj.contentDocument.querySelectorAll('span'); // spans.forEach(span => span.style.backgroundColor = 'coral'); }); </script> </body> </html>
注意:一定要在load事件触发后再访问contentDocument,否则外部文档还未加载完成,会获取到null或无法操作。
load
null
受浏览器同源策略限制,主页面无法直接访问的内部文档,也没法强制注入样式。这种情况下只有两种可行思路:直接修改外部HTML文件的样式代码;让外部页面配合实现:主页面通过postMessage发送样式指令,外部页面监听消息并自行添加样式(需要外部页面有对应的处理逻辑)。补充说明 #你之前写的object span选择器无效,是因为它只能选中主页面DOM中<object>标签直接包含的<span>元素,而无法穿透到加载的独立文档DOM树中。内容的提问来源于stack exchange,提问作者Skary
postMessage
你之前写的object span选择器无效,是因为它只能选中主页面DOM中<object>标签直接包含的<span>元素,而无法穿透到加载的独立文档DOM树中。内容的提问来源于stack exchange,提问作者Skary
object span
<object>
<span>
内容的提问来源于stack exchange,提问作者Skary
超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起
模型再升级,30秒超长叙事, 模态参考扩容
模型自由,工具不限,最新支持 Deepseek-V4 系列、GLM-5.3 系列
超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列
大模型19元起,Al应用9.9元畅享,新人首购爆款尽享优惠