うしブログ

うしブログ

趣味で運営する、GeoGebraの専門ブログ。

(作業メモ)StartPoint要検証(2行の場合;テキスト変更時未定義問題)

「生徒向けワークシート」のアプレットに使われているオブジェクトの概要を取得するブックマーク

ブックマークレットによってJavaScriptを実行する方法(下記リンク先参照)により、「生徒向けワークシート」のアプレットに使われているオブジェクトの概要を取得する方法。

ブラウザのアドレスバーからJavaScriptのコードを実行する方法 (JavaScript疑似プロトコル)

 

ブックマークのURLには、下記をコピペする。

javascript:var thisApplet = window[document.getElementsByClassName("notranslate")[0].id];var beforeTag = document.getElementsByClassName("container")[0];var objList = thisApplet.getAllObjectNames();for (i = 0; i < objList.length; i++) {var objType = thisApplet.getObjectType(objList[i]);var objDef = thisApplet.getCommandString(objList[i],true);var objVal = thisApplet.getValueString(objList[i]);objList[i] = objType + '.' + objVal + ', definition: ' + objDef;} var stockList = '';for (var i=0;i<objList.length;i++){stockList += '<li>'+ objList[i] + '</li>';} beforeTag.insertAdjacentHTML('afterend','<div id="objprop">default</div>');document.getElementById("objprop").innerHTML = stockList;

 

動作例

f:id:usiblog:20180521090953g:plain

 

関数版

function writeProperty(){
  var thisApplet = window[document.getElementsByClassName("notranslate")[0].id];  // 対象アプレットを取得
  var beforeTag = document.getElementsByClassName("container")[0];  // アプレット格納用の要素を取得
  var objList = thisApplet.getAllObjectNames();  // アプレットの全オブジェクト名のリスト
  for (i = 0; i < objList.length; i++) {
    var objType = thisApplet.getObjectType(objList[i]);
    var objDef = thisApplet.getCommandString(objList[i],true);
    var objVal = thisApplet.getValueString(objList[i]);
    objList[i] = objType + '.' + objVal + ', definition: ' + objDef;
  }  // objListにオブジェクトタイプ・定義・値の情報を追加
  var stockList = '';
  for (var i=0; i<objList.length;i++){
    stockList += '<li>'+ objList[i] + '</li>';
  }  // objListの要素をHTMLリスト化
  beforeTag.insertAdjacentHTML('afterend','<div id="objprop">default</div>');  // アプレット格納用の要素の直後にdiv要素を追加
  document.getElementById("objprop").innerHTML = stockList;
}