Compartir a través de


WebViewControl.AddInitializeScript(String) Método

Definición

Inserta un script en un control WebViewControl justo después de ContentLoading , pero antes de que se ejecute cualquier otro script en la página.

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)

Parámetros

script
String

Platform::String

winrt::hstring

Implementaciones

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

Requisitos de Windows

Familia de dispositivos
Windows 10, version 1809 (se introdujo en la versión 10.0.17763.0)
API contract
Windows.Foundation.UniversalApiContract (se introdujo en la versión v7.0)

Ejemplos

El código siguiente es un ejemplo de C# de inserción de scripts en la carga de páginas:

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")); 

Con InvokeScriptAsync, una aplicación puede insertar scripts en un WebViewControl para proporcionar funcionalidad adicional o modificar la página. Sin embargo, InvokeScriptAsync no tiene ninguna garantía sobre cuándo se ejecuta el script y, si la aplicación lo llama antes de que DOMContentLoaded se genere, existe el riesgo de que el script se inserte en la página anterior. En este ejemplo se ofrece una manera de que la aplicación proporcione un script antes de la navegación (o durante NavigationStarting) que se ejecutará antes de que se ejecute cualquier script de la página.

Se aplica a