English help on website



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


例: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";
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;

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