加载外部JavaScript资源。 我使用的端点render.html与js_source允许的页面范围内自定义JavaScript代码的评估,网页加载完成后,页面呈现之前。动态我目前使用<a href="https://splash.readthedocs.io/en/stable/" rel="nofollow noreferrer">Splash HTTP API</a>作为无头浏览器渲染请求飞溅HTTP渲染服务
我需要向外部资源发出额外请求,例如加载页面后加载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;
运行在铬的控制台上述脚本做什么,我需要立刻使得页面内获得了jQuery资源。
我目前正在飞溅来自Python上下文的请求。我不会增加额外的依赖一样支持Lua脚本。注入的JavaScript代码,将渲染页面之前评估本来就是我一直在寻找。 –
你是什么额外的依赖是什么意思?你使用Docker安装Splash吗?如果是这样,它已经支持Lua脚本 - 请参阅“/ lua_source”参数/执行端点。你不需要在客户端安装Lua。 –
我的意思是额外的依赖是我不想支持Lua脚本,如果它不是真正需要的话。 Lua脚本以相同的方式评估js,唯一的区别是资源从外部下载,这在我的情况下不起作用。在我当前的实现中,我需要在页面加载后从浏览器上下文中发送一些额外的请求,以在页面上保存一些令牌。 –