5

Gibt es eine Möglichkeit, einen Rückruf von der geladenen Webseite auszulösen? Früher habe ich PhantomJS verwenden, wo es möglich war, folgenden Code:Headless Chrome - Rückruf von geladener Webseite auslösen

if (typeof window.callPhantom === 'function') { 
    window.callPhantom({ data: 'RenderPDF' }); 
} 

Und im PhantomJS Skript:

page.onCallback = function (data) { 
    /* callback code */ 
}; 

Antwort

2

Sie können in der Runtime domain mithilfe der Funktion auswerten Javascript im Browser bewerten.

Beispiel unten bewertet eine Funktion, die eine Zusage zurückgibt, die aufgelöst wird, wenn window.callChrome aufgerufen wird.

function callChrome() { 
    return() => { 
    return new Promise((resolve, reject) => { 
     window.callChrome = resolve; 
    }); 
    }); 
} 

// runtime is located in the client object 
Runtime.evaluate({ 
    expression: `(${callChrome()})()`, 
    awaitPromise: true, 
}).then((result) => { 
    // what you've passed into the window.callChrome function. 
}); 

Der Ausdruck, der ausgewertet wird, sieht so aus.

Sie sollten diesen Code wirklich ausführen, sobald die Seite fertig ist. Idealerweise mit der Page.loadEventFired Funktion.

Verwandte Themen