【发布时间】:2016-12-06 16:59:50
【问题描述】:
我目前使用Splash HTTP API 作为无头浏览器来呈现请求。 我将端点 render.html 与 js_source 一起使用,它允许在页面完成加载之后和页面呈现之前在页面上下文中评估自定义 Javascript 代码.
我需要对外部资源发出额外的请求,例如在页面加载后加载 jQuery。
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = "https://code.jquery.com/jquery-1.5.1.min.js";
document.getElementsByTagName('head')[0].appendChild(script);
问题是这样做时,对象在页面上下文中不可用。该脚本似乎确实添加到最终呈现的 HTML 源的 HEAD 元素中:
<script type="text/javascript" src="https://code.jquery.com/jquery-1.5.1.min.js"></script>
我尝试使用下面描述的两种方法设置回调,以确保在访问 jQuery 的任何方法之前加载脚本。但是这两种情况下回调都调用失败。
script.onreadystatechange = callback;
script.onload = callback;
在 Chrome 的控制台中运行上述脚本可以满足我的要求,并立即使 jQuery 资源在页面上下文中可用。
【问题讨论】:
标签: javascript jquery html scrapy-splash