WebViewControl.AddInitializeScript(String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Внедряет скрипт в WebViewControl сразу после Загрузки содержимого , но перед выполнением любого другого скрипта на странице.
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)
Параметры
- script
-
String
Platform::String
winrt::hstring
Реализации
Требования к Windows
Семейство устройств |
Windows 10, version 1809 (появилось в 10.0.17763.0)
|
API contract |
Windows.Foundation.UniversalApiContract (появилось в v7.0)
|
Примеры
Следующий код представляет собой пример внедрения скрипта на C# при загрузке страницы:
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"));
С помощью InvokeScriptAsync приложение может внедрять скрипты в Элемент Управления WebViewControl для предоставления дополнительных функциональных возможностей или изменения страницы. Тем не менее, InvokeScriptAsync не гарантирует, когда скрипт выполняется, и если приложение вызывает его до вызова DOMContentLoaded , существует риск внедрения скрипта на предыдущую страницу. Этот пример предоставляет приложению способ предоставления скрипта перед переходом (или во время NavigationStarting), который будет выполняться перед выполнением любого скрипта на странице.