OOBSilverlightアプリケーションがあります。Silverlight5開発者ランタイムとすべてのSilverlight5開発者ツールがインストールされています。OOBアプリケーションには、WebBrowserコントロールを備えたSilverlightビューがあります。webBrowserコントロールのソースは次のaspxページです。
<head>
<title></title>
<script type="text/javascript" language="javascript">
function test() {
if (hiddenDiv.style.display == "none")
hiddenDiv.style.display = "block";
else
hiddenDiv.style.display = "none";
}
function handCursor() {
clickTest.style.cursor = "hand";
}
function defaultCursor() {
clickTest.style.cursor = "default";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<%--This Link Doesn't Work--%>
<a href="javascript: test()">Javascript Href test</a></br>
<%--This Link Works--%>
<a id="clickTest" onclick="test()" onmouseover="handCursor()" onmouseout="defaultCursor()" style="text-decoration: underline; color:Blue">OnClick Test</a>
<div id="hiddenDiv" style="display:none; background-color:Black">
<span style="color:White; display:inherit">Look at me!</span>
</div>
</div>
</form></body>
(注:はい、上記のコードが完全なHTMLではないことを知っています。エディターにページ全体を正しく表示させることができませんでした。htmlタグを切り取りました。また、これは単なるテストページであり、実際のページではないことに注意してください。アプリに表示します。問題を特定しようとしていました)。
上記のコードをIE9で実行すると、問題なく動作します。リンクにより、「hiddenDiv」と呼ばれるDivが非表示および表示されます。SilverlightアプリのWebBrowserコントロールに表示されると、別の開発者のマシンでは正常に機能しますが、私のマシンでは機能しません。リンクをクリックしても何も起こりません。javascriptは単に実行されないようです。この問題は、href=javascriptメソッドを使用した場合にのみ発生するようです。onclickはうまく機能します。残念ながら、アプリに表示したいページを所有しておらず、コードを変更できません。
私の同僚は、この問題は、私の間違いに気づいて開発者ランタイムをインストールする前に、標準のSilverlight5ランタイムを誤ってインストールしたことが原因である可能性があると考えています。その後、問題のあるファイルを削除し、Silverlight5Tools.exeを再インストールしましたが。実際、私はすべてのSilverlight関連製品(VS 2010を除く)をアンインストールして再インストールし、IE9をアンインストールしました。
誰かがこの問題に関する追加情報を持っているなら、私に知らせてください。HTMLの変更を伴わないソリューションが必要です。私はそのhtmlを制御しません。アプリケーション内のWebブラウザーコントロールに表示するだけで、OOBSLアプリケーションに外部Webアプリケーションを埋め込むことを望んでいます。