WebViewControl.AddInitializeScript(String) Méthode

Définition

Injecte un script dans un WebViewControl juste après ContentLoading , mais avant qu’un autre script ne soit exécuté sur la page.

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)

Paramètres

script
String

Platform::String

winrt::hstring

Implémente

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

Configuration requise pour Windows

Famille d’appareils
Windows 10, version 1809 (introduit dans 10.0.17763.0)
API contract
Windows.Foundation.UniversalApiContract (introduit dans v7.0)

Exemples

Le code suivant est un exemple C# d’injection de script sur le chargement de page :

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

À l’aide d’InvokeScriptAsync, une application peut injecter des scripts dans un WebViewControl pour fournir des fonctionnalités supplémentaires ou modifier la page. Toutefois, InvokeScriptAsync n’a aucune garantie quant au moment où le script est exécuté, et si l’application l’appelle avant que DOMContentLoaded ne soit déclenché, il existe un risque que le script soit injecté dans la page précédente. Cet exemple permet à l’application de fournir un script avant la navigation (ou pendant navigationStarting) qui s’exécutera avant l’exécution d’un script dans la page.

S’applique à