WebViewControl.AddInitializeScript(String) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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.