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

如何使用JavaScript自动填充OFAC制裁搜索网站的指定表单?

嘿,你的代码为啥跑不起来?

直接在 window.open() 之后就去操作新窗口的DOM,这可是个典型的「操之过急」问题——新窗口刚被打开,目标页面的HTML还在加载路上呢,这时候调用 getElementById 根本找不到那个叫 ctl00_MainContent_txtLastName 的字段,十有八九会抛出 Cannot set properties of null (setting 'value') 的错误。

给你改好的可行方案

你得等新窗口的页面完全加载完成后,再去碰它的DOM元素。监听新窗口的 load 事件就能解决这个问题:

const web = window.open('https://sanctionssearch.ofac.treas.gov/', '_blank');

web.onload = function() {
  // 先确认元素存在再赋值,避免报错
  const lastNameInput = web.document.getElementById('ctl00_MainContent_txtLastName');
  if (lastNameInput) {
    lastNameInput.value = 'Juan';
    console.log('Success! 字段填充完成');
  } else {
    console.log('糟了,找不到目标字段!可能是网站更新了元素ID,去检查一下吧');
  }
};
额外要注意的坑
  • 跨域这道坎:如果这段代码是在你自己的网页里运行(不是浏览器的开发者控制台),浏览器的同源策略会直接拦你——不同域名的页面之间不能随便互相操作DOM。这种情况下,要么在控制台跑代码,要么用Tampermonkey这类油猴脚本(扩展有特殊权限,能绕过跨域限制)。
  • 元素ID可能变:目标网站哪天更新了页面结构,这个 ctl00_MainContent_txtLastName 的ID说不定就变了。到时候代码失效,记得去检查一下字段的最新ID哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:05:04