English help on website



レンダリング枠のサンプルマクロ(Ver9.35対応版)
目次レンダリング枠− サンプルマクロ


例:C:\Folder\rendering.html
<html>
<head>
<style>
.btn { border-radius: 30px; padding: 30px; background: #111; color: #eee; text-align: center; transition: 0.3s;}
.btn:hover { background: #ccc; color: #222;}
</style>
<script>
var idCallback=0; //idCallbackは、ページ表示後にマクロ側からjavascript: で設定される
function onbtn(s){
  //document.body.insertAdjacentHTML("beforeend", "["+idCallback+"]<BR>");
  window.chrome.webview.postMessage({funcid:idCallback,message:s});
}
</script>
</head>
<body style="background-color:#333;">
<div class="btn" onclick="onbtn('ボタン1押した')">ボタン1</div>
<BR>
<div class="btn" onclick="onbtn('ボタン2押した')">ボタン2</div>
<BR>
</body>
</html>

例:test1.mac
//表示するだけ
renderpanecommand """
  {
    "target":"rendering#1",
    "show":1,
    "uri":"file:///c:/folder/rendering.html",
    "place":"leftside",
  }
  """;

endmacro;

例:test2.mac
//非同期的にページ作成完了まで待って、イベントなどの応答を得る(js版)
hidemaruversion "9.22.14";
jsmode "\\" + currentmacrofilename; //オブジェクトが他のマクロと被らないように固有の名前空間にしてください
js{
  //debuginfo(2);
  var strTarget="rendering#1";
  
  function checkComplete(){
    //実行の順番(3) 繰り返し
    var readyState = renderpanecommand({target:strTarget,get:"readyState"});
    console.log(readyState);
    if( readyState == "complete" ) {
      hidemaru.clearInterval(idInterval);
      funcCompleted();
    }
  }
  
  function funcCompleted() {
    //実行の順番(4)
    var idCallback=hidemaru.getFunctionId(funcCallback);
    renderpanecommand({
        target:strTarget,
        uri:'javascript:idCallback='+idCallback+';',
        });
  }
  
  var sGlobal="";
  function funcCallback(s){
    //実行の順番(5) 手動操作時
    sGlobal=s;
    console.log(s);
    hidemaru.postExecMacroMemory('js{message(sGlobal);}');
  }
  
  //実行の順番(1)
  renderpanecommand({
      target:strTarget,
      show:1,
      uri:"file:///c:/folder/rendering.html",
      place:"leftside",
      });
      

  //実行の順番(2)
  var idInterval;
  if( typeof(idInterval)!="undefined" ) {
    hidemaru.clearInterval(idInterval);
  }
  idInterval = hidemaru.setInterval(checkComplete,100);
}
endmacro;

例:test3.mac
//同期的にページ作成完了まで待って、イベントなどの応答を得る(従来マクロ版)
if(event==10){
  message geteventparam(0);	//ボタン押した
  endmacro;
}

//最初の実行
setrenderpanetarget "rendering#1";
renderpanecommand """
    {
    "show":1,
    "uri":"file:///c:/folder/rendering.html",
    "place":"leftside",
    }
    """;

while(1){
  $readyState = renderpanecommand( "get_readyState" );//または{"get":"readyState"}
  if($readyState=="complete")break;
  if(iskeydown(0x1B)){//Esc
    endmacro;
  }
}

#idCallback=registercallback(currentmacrofilename);
$uri = "javascript:idCallback="+str(#idCallback)+";";
renderpanecommand( $uri );

endmacro;

ブラウザ枠・個別ブラウザ枠