You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取含document.write的元素所生成的文本?

提取document.write中的内容或获取执行后的文本

情况1:从未执行的script代码里提取内容

如果你的#myDiv里还保留着未执行的script标签,要拿到document.write里的"SOMETHING",可以通过正则匹配script的代码内容:

// 拿到script标签里的代码
const scriptCode = $('#myDiv script').text();
// 匹配document.write的单引号内容
const match = scriptCode.match(/document\.write\('([^']+)'\)/);
if (match) {
  const targetText = match[1];
  console.log(targetText); // 输出 SOMETHING
}

要是代码里用的是双引号,把正则里的单引号换成双引号就行:/document\.write\("([^"]+)"\)/。

情况2:script已执行但仍获取到标签内容

如果script已经跑了,但text()返回的还是script标签,大概率是因为你在DOM加载完成后动态插入了这个script——此时document.write会直接覆盖整个页面,不会把内容插入到div里,导致div里的script标签还留在那。

解决办法是换掉document.write,直接操作DOM:

<div id="myDiv"></div>
<script>
// 用jQuery直接设置内容
$('#myDiv').text('SOMETHING');
// 或者原生JS写法
document.getElementById('myDiv').textContent = 'SOMETHING';
</script>

之后再调用$('#myDiv').text()就能直接拿到"SOMETHING"。

要是非得用document.write,得确保script在页面加载过程中执行(放在<body>里,浏览器解析到它时立刻运行),这时候div里的内容会被替换成"SOMETHING",直接用text()就能获取。

内容的提问来源于stack exchange,提问作者Behzad Safamanesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 08:54:21