Ho un sito Web con un modulo di accesso. Se un utente non è loggato e tenta di accedere a una pagina interna, verrà reindirizzato alla pagina predefinita. Ad esempio, se provo ad accedere a http://siteURL.PhantomPrint.aspx
, verrai reindirizzato a http://siteURL/Default.aspx?ReturnUrl=PhantomPrint.aspx.
E dopo l'accesso, un reindirizzamento automatico avverrà sulla pagina.Accesso Phantomjs, reindirizzamento e rendering pagina dopo pagina Caricamento terminato
Dopo il reindirizzamento voglio rendere la pagina con Phantomjs e salvarla come pdf. Il problema è che il rendering avviene prima che il caricamento della pagina sia terminato e posso renderizzare correttamente la pagina solo se utilizzo i timeout. In questo caso, se il caricamento della pagina richiede più tempo del normale, il pdf ottenuto non è quello corretto.
Qui di seguito potete trovare il codice java script:
var page = require('webpage').create();
var index = 0,
page.onConsoleMessage = function (msg) {
console.log(msg);
};
var steps = [
function() {
//Load Login Page
page.open("http://siteURL.PhantomPrint.aspx", function() {
//Enter Credentials
page.evaluate(function() {
console.log("filling inputs");
var usernameInput = document.getElementById("txtUsername");
usernameInput.value = "user";
var passwordInput = document.getElementById("txtPassword");
passwordInput.value = "password";
var loginButton = document.getElementById("btnLogin");
loginButton.click();
console.log("login button was submitted");
});
});
},
function() {
// page.onLoadFinished = function() {
// Render the page to pdf
page.render('example.png');
phantom.exit();
console.log("rendering finished");
//});
}
];
interval = setInterval(function() {
if (!loadInProgress && typeof steps[testindex] == "function") {
console.log("step " + (testindex + 1));
steps[testindex]();
testindex++;
}
if (typeof steps[testindex] != "function") {
console.log("test complete!");
phantom.exit();
}
}, 1000);
Qualche suggerimento su come posso assicurare che il rendering viene fatto solo dopo che la pagina reindirizzata sta finendo di carico vengono accolti.
Non vedo alcuna ricorsione. –