UWSCのFormでX-UA-CompatibleがIE=9以上だとoleevent()が使えないのをどうにかする

UWSCのFormでこう、ちょっとしたUIを作りたいときに

<meta http-equiv="X-UA-Compatible" content="IE=edge">

などと書きたいわけですよ、つらいから
だけどそうすると oleevent が使えなくなっちゃうんですね
そんなイベントはねー!みたいなエラーになってしまう
こまる、つらい

じゃあもう自分でやるしかないな!

f = createform("about:blank", "test", TRUE)
f.document.write(html)

while f.visible
    select f.document.parentWindow.value
        case 1,2,3,4
            print f.document.parentWindow.value + " が押されました"
            f.document.parentWindow.value = 0
    selend
    sleep(0.01)
wend

textblock html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<script>
value = 0;
var hoge = function(n)
{
    value = n;
}
</script>
</head>
<body>
    <input type="button" name="1" value="1" onclick="hoge(this.value);">
    <input type="button" name="2" value="2" onclick="hoge(this.value);">
    <input type="button" name="3" value="3" onclick="hoge(this.value);">
    <input type="button" name="4" value="4" onclick="hoge(this.value);">
</body>
</html>
endtextblock

はい

script タグ内で宣言してる

value = 0;

の値をForm内でjs使って書き換えるようにして、それをUWSC側から監視してしまおうというわけです
これは要するに window.value なのでUWSC側からは f.document.parentWindow.value で見える

あとはおなじみFormの visible 監視ループの中でその変数の値を見てそれに応じて処理を行う、というすんぽーよ
毎回その変数を初期化するのを忘れずにね
取りこぼしがあるかもしれないからあんまり激しいのはNGよ!

とまぁこんな感じでごまかしながらやってんだけど oleevent() こうするとできるよーみたいな情報ある人は教えてください…

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中