Windows PhoneアプリのWebブラウザーコントロールに履歴があるかどうかを確認する必要があります。その方法は、browser.InvokeScript("eval", "if(history.length > 0){ history.go(-1) }");
を使用して行います。 WebBrowserに履歴がある場合にのみ関数を呼び出すことができるように、変数を設定するためにこのメソッドまたは他のメソッドを使用する必要があります。私はそれを設定する方法を把握することはできません。InvokeScriptでC#変数を変更する
私が使用している完全なコードはこれです:
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
var hasHistory = true;
browser.InvokeScript("eval", "if(history.length > 0){ history.go(-1) }");
if (AppSettings.Default.ExitWarning)
{
if (!hasHistory) {
if (MessageBox.Show("Are you sure you want to exit?", "Exit?", MessageBoxButton.OKCancel) != MessageBoxResult.OK)
{
e.Cancel = true;
}
}
}
}
は私がSystemExceptionは80020101を取得します。どんな考え? – JacobTheDev
JavaScriptが無効であると思われます。私はストレートJSに精通していない、ちょうどjQuery、リターン関数はどのように機能しますか? – JacobTheDev
'eval'はjavascript組み込み関数です。何らかの理由で空のeval文字列でも例外がスローされます。 –