Condividi tramite


WebViewControl.AddInitializeScript(String) Metodo

Definizione

Inserisce uno script in un controllo WebViewControl subito dopo ContentLoading , ma prima dell'esecuzione di qualsiasi altro script nella pagina.

public:
 virtual void AddInitializeScript(Platform::String ^ script) = AddInitializeScript;
void AddInitializeScript(winrt::hstring const& script);
public void AddInitializeScript(string script);
function addInitializeScript(script)
Public Sub AddInitializeScript (script As String)

Parametri

script
String

Platform::String

winrt::hstring

Implementazioni

M:Windows.Web.UI.IWebViewControl2.AddInitializeScript(System.String) M:Windows.Web.UI.IWebViewControl2.AddInitializeScript(Platform::String) M:Windows.Web.UI.IWebViewControl2.AddInitializeScript(winrt::hstring)

Requisiti Windows

Famiglia di dispositivi
Windows 10, version 1809 (è stato introdotto in 10.0.17763.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v7.0)

Esempio

Il codice seguente è un esempio C# di inserimento di script nel caricamento della pagina:

WebViewControl webViewControl; 

// Replace the window.external with a custom object that does postMessage. The app 
// script uses ScriptNotify and InvokeScriptAsync to implement PostMessage and invoke 
// a messageReceived handler. 
String script = @"var realExternal = window.external;  
var customExternal = { 
    postMessage: (message) => { realExternal.notify('PostMessage: ' + message); }, 
    messageReceived: null, 
}; 
window.external = customExternal;"; 

void ScriptNotifyCallback(WebViewControl sender, WebViewControlScriptNotifyEventArgs args) 
{ 
    String response = GetResponseForPostFromWebView(args.value); 
    sender.InvokeScriptAsync("eval", $"window.external.messageReceived({response});");
} 

webViewControl.ScriptNotify += ScriptNotifyCallback; 
webViewControl.AddInitializeScript(script); 
webViewControl.Navigate(new Uri("http://mydomain.com")); 

Usando InvokeScriptAsync, un'app può inserire script in un Controllo WebView per fornire funzionalità aggiuntive o modificare la pagina. Tuttavia, InvokeScriptAsync non garantisce quando viene eseguito lo script e, se l'app lo chiama prima che VENGA generato DOMContentLoaded , esiste il rischio che lo script venga inserito nella pagina precedente. Questo esempio consente all'app di fornire uno script prima della navigazione (o durante NavigationStarting) che verrà eseguito prima dell'esecuzione di qualsiasi script nella pagina.

Si applica a