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() こうするとできるよーみたいな情報ある人は教えてください…

広告

UWSCのFormでX-UA-CompatibleがIE=9以上だとoleevent()が使えないのをどうにかする」への3件のフィードバック

  1. 自分もformと連動したアプリを作っているのですが、「UWSCのcreateformの使い方」を参考にして調べてみたら出来たので報告しておきます

    ※sample.html

    ※uwsc
    f = createform(“sample.html”, “createform sample”, TRUE)
    oleevent(f.document.all.buttonID, “HTMLButtonElementEvents”, “onclick”, “keyEventHandler”)

    while f.visible
    sleep(0.1)
    wend

    procedure keyEventHandler()
    print “ok”
    fend

    • おおお…?document.allにぶら下がってるオブジェクトにはイベント割り当てられるんですね…!?
      どうしてそんなことになってるのかさっぱりわかりませんが、おかげで長年の懸念点が解消しました
      ありがとうございました!

  2. あー…タグだから消えてるのかな
    html内に下のボタンがあるだけです
    <input type=’button’ id=’buttonID’ value=’テスト’>

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中