我想做什么:我希望从网页上收到包含帖子的消息。 然后我想根据正则表达式规则将消息解析为字符串。 (例如,找到包含单词“bug”的所有句子)。
我已经无缘无故地选择了JavaScript - 所以如果有更好的方法 - 请非常友好地提及它。
我的所作所为:我打开URL,然后启动JavaScript,应该
var x=document.getElementById("post-59389006_839");
alert (x.value);
//or
var x=document.getElementById("bp_data-59389006_839").innerHTML;
alert(x);
...但它显示“ReferenceError:document not defined”错误。 如果我下载页面,然后将我的脚本插入其中,当然,它可以正常工作。
问题:
- 我的JavaScript出错了什么?
- 有没有更好的方法使用regexp从网页解析字符串?
醇>
P.S。 通常我可以找到我所有问题的答案(有人已经问过并回答过他们),但现在我要么完全滥用JS,要么用谷歌搜索失败了。
答案 0 :(得分:0)
正在加载脚本并在页面加载之前运行。这意味着您尝试读取的元素实际上并未加载,因此在脚本尝试从中读取时会返回错误。实际上,文档节点尚未加载,这就产生了ReferenceError: document is not defined
。
有两种方法可以避免这种情况:在页面的HTML底部插入<script></script>
标记(由于您无法访问服务器,因此似乎不可行),或者设置要在加载文档时调用的函数(搜索'js事件监听器')。
RegExp可能是您最好的选择。
另外,JS是您加载后可能动态编辑页面的唯一方式。也许尝试GreaseMonkey或TamperMonkey而不是iMacro。