私はたくさんの読書をしましたが、なぜこれがうまくいかないのか理解できません。現在のアップデートでVS2010を使用しています。WebページをC#Webブラウザコントロールにロードしたい(このアプリケーションはWindowsフォームアプリケーションです):
this.webBrowser1.Navigate("https://mydomain/L1/L2/L3/L4/webpage.asp");
this.webBrowser1.PerformLayout();
私の理解では、C#からJavascript関数を呼び出すには、次を使用します。
this.webBrowser1.Document.InvokeScript("passwordReset");
または、渡すパラメータがある場合:
object[] parameters = new object[3];
parameters[0] = “1”;
parameters[0] = false;
parameters[0] = “3”;
webBrowser1.Document.InvokeScript("passwordReset", parameters);
私のWebページのコードは次のとおりです。私が試した両方の方法を示しました。ページにJavascriptを挿入すると、うまくいくようです。
制限があるため、この方法を使用したくありません。次のように*.jsファイルを呼び出すことができる必要があります。
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>My Test Page...</title>
<script type="text/javascript" language="javaScript">
function passwordReset()
{
alert("You're about to change your password!!");
}
</script>
<script type="text/javascript" src="/L1/L2/Password_Reset.js"></script>
</head>
両方のJavascriptを同時にページに含めていないことに注意してください。この例には両方を含めただけです。
「Password_Reset.js」ファイルの関数を呼び出すときに、このメソッドが期待どおりに機能しない理由を誰かが説明できますか?
フルパーミッションを設定してみました:[PermissionSet(SecurityAction.Demand、Name = "FullTrust")]
また、このアプリをCom Visibleにする:[System.Runtime.InteropServices.ComVisibleAttribute(true)]
編集:私が達成しようとしているのは、webBrowser1.Navigate( "URL");の後にJavascriptを実行できるようにすることです。次のようにページコードに書き込まれる場合:
<script type="text/javascript" src="/L1/L2/Password_Reset.js"></script>
編集:私の質問を再読する際に、この問題はフォルダレベルの問題であり、スクリプトがロードされていないのではないかと思いますか?誰かがこれについてアドバイスできますか?