Bagikan melalui


WebViewControl.AddInitializeScript(String) Metode

Definisi

Menyuntikkan skrip ke WebViewControl tepat setelah ContentLoading tetapi sebelum skrip lain dijalankan di halaman.

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)

Parameter

script
String

Platform::String

winrt::hstring

Penerapan

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

Persyaratan Windows

Rangkaian perangkat
Windows 10, version 1809 (diperkenalkan dalam 10.0.17763.0)
API contract
Windows.Foundation.UniversalApiContract (diperkenalkan dalam v7.0)

Contoh

Kode berikut adalah sampel C# dari injeksi skrip pada pemuatan halaman:

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

Menggunakan InvokeScriptAsync, aplikasi dapat menyuntikkan skrip ke webViewControl untuk menyediakan fungsionalitas tambahan atau mengubah halaman. Namun, InvokeScriptAsync tidak memiliki jaminan tentang kapan skrip dijalankan, dan jika aplikasi memanggilnya sebelum DOMContentLoaded dinaikkan , ada risiko bahwa skrip disuntikkan ke halaman sebelumnya. Contoh ini menawarkan cara bagi aplikasi untuk menyediakan skrip sebelum navigasi (atau selama NavigationStarting) yang akan berjalan sebelum skrip apa pun di halaman dijalankan.

Berlaku untuk