2014-03-10 3 views
4

Есть ли способ отключить загрузку подкадров в phantomJs или даже QtWebKit/webkit вообще? У меня нет проблем с массивом бит с исходным кодом, если это необходимо. Я занимаюсь веб-манипуляцией, но мне не нужно содержимое iframe, это только замедляет время загрузки.Отключить подкадры (iframes) loading в PhantomJs/QtWebKit

Я знаю, что это можно сделать в Mozilla, например.

webSetup->SetProperty(nsIWebBrowserSetup::SETUP_ALLOW_SUBFRAMES,PR_TRUE); 

Но до сих пор я ничего не нашел в QtWebKit для этого.

Возможно, есть способ использовать onResourceRequested, чтобы блокировать только запросы на iframes?

ответ

4

Это похоже на работу:

// load only the main page, no iframes 
page.onLoadStarted = function() { 
     page.navigationLocked = true; 
}; 

Может разблокировать его снова после загрузки страницы, если это необходимо.

В качестве альтернативы, можно использовать это, чтобы блокировать загрузку каких-либо ресурсов:

var req_count = 0; 
page.onResourceRequested = function(requestData, networkRequest) { 
     if (req_count++ > 0) { 
       networkRequest.abort(); 
     } 
} 

Смотрите также:

http://phantomjs.org/api/webpage/handler/on-resource-requested.html http://newspaint.wordpress.com/2013/04/03/adblock-for-phantomjs/

Смежные вопросы