当脚本不是页面的一部分时,出现JavaScript“未定义文档”错误

当脚本不是页面的一部分时,出现JavaScript“未定义文档”错误,javascript,regex,social-networking,Javascript,Regex,Social Networking,我想做的是:我想从带有帖子的网页上获取信息。 然后我想根据正则表达式规则将消息解析为字符串。 例如,查找包含单词bug的所有句子 我选择JavaScript是没有原因的,所以如果有更好的方法,请提一下 我所做的:我打开,然后启动JavaScript,它应该 var x=document.getElementById("post-59389006_839"); alert (x.value); //or var x=document.getElementById("bp_data-59389006

我想做的是:我想从带有帖子的网页上获取信息。 然后我想根据正则表达式规则将消息解析为字符串。 例如,查找包含单词bug的所有句子

我选择JavaScript是没有原因的,所以如果有更好的方法,请提一下

我所做的:我打开,然后启动JavaScript,它应该

var x=document.getElementById("post-59389006_839");
alert (x.value);
//or
var x=document.getElementById("bp_data-59389006_839").innerHTML;
alert(x);
…但它显示ReferenceError:文档未定义错误。 如果我下载了这个页面,然后将我的脚本插入其中,当然,它可以工作

问题:

我的JavaScript有什么问题? 是否有更好的方法使用regexp解析网页中的字符串? p、 通常,我可以找到我所有的问题的答案,有人已经问过并回答过了,但现在我要么完全滥用JS,要么谷歌搜索失败

正在加载脚本并在加载页面之前运行。这意味着您试图从中读取的元素实际上尚未加载,因此当脚本试图从中读取时返回错误。事实上,文档节点甚至还没有被加载,这就是产生ReferenceError的原因:文档没有定义

有两种方法可以避免这种情况:要么在页面的HTML底部插入标记,因为您没有访问服务器的权限,要么将函数设置为在文档加载搜索“js事件侦听器”时调用

RegExp可能是您最好的选择


另一方面,JS是在页面加载后能够动态编辑页面的唯一方法。也许可以试试GreaseMonkey或TamperMonkey,而不是iMacro。

你是在什么地方打开url的?一些网络驱动程序?还是浏览器?你是否试图通过JS从你自己的网页获取帖子?你如何启动javascript?我想布伦丹·艾奇(Brendan Eich)几年前就是这么做的:@Tamil,我在浏览器中打开URL。该页面不是我的,虽然我可以将JS代码插入本地保存的页面,但我宁愿不这样做。我想从页面上获得一些没有提升权限的帖子,例如作为网站的创建者。@AmitJoki,我使用iMacro,不过,我认为这不值得一提-我尝试双击它,通过Firefox启动它。如果你想在废弃的页面中执行javascript,请阅读Phantomjs或jsdom。我还是不明白你想做什么。。我可以将JS代码插入本地保存的页面你是说查看源代码并获取内容?