我正在编写一个简单的PhantomJS应用程序,用于搜索寻找模式的特定页面。在其中一个页面中,网站的所有者正在读取window.screen
宽度/高度属性并更改我的URL(这取消了页面其余部分的加载)。设置viewportSize
会更改窗口的宽度/高度值,但不会更改screen
对象的宽度/高度值。
我的第一步是禁用导航,如下所示:
tab.onLoadStarted = function () {
tab.navigationLocked = true;
};
但是,由于此检查是在<head>
中完成的,因此导致load
事件触发,有时页面尚未完全加载(导致其他许多内容)问题)。
我尝试在第一次加载时覆盖屏幕对象:
tab.onLoadStarted = function () {
tab.evaluate(function () {
window.screen = {
width: 1920,
height: 1080
};
});
};
但是,该属性是只读的,因此设置它不会改变值。
在PhantomJS中,有没有办法覆盖window.screen
值来设置我自己的屏幕尺寸?
答案 0 :(得分:1)
您无法在window.screen
事件中设置LoadStarted
值,但您可以在Intialized
事件中设置tab.onInitialized = function () {
tab.evaluate(function () {
window.screen = {
width: 1920,
height: 1080
};
});
};
。所以,相反,代码看起来像这样:
{{1}}