うしブログ

うしブログ

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

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

(要修復)ToggleButton・RollPolygonWithoutSlipping・貯金時計・直感力トレーニング

Webサイトに埋め込んだGeoGebraアプレットの画面上に、ダウンロードアイコンを設置する方法

ダウンロードアイコンを設置したアプレット(見本)

インラインフレームによって、アプレットをブログ等のサイトに埋め込む方法で、GeoGebra アプレットをユーザーに見せている場合には、アプレット画面から直接、ggbファイルをダウンロードするオプションは、通常は存在しません。

そこで、そうしたオプションを自作してみました。

下記のアプレットは、右上にあるダウンロードアイコンをクリックすると、ggbファイルのダウンロードが開始されるようになっています。

また、このアイコンは、アプレットがインラインフレームによって埋め込まれている場合にのみ、表示される仕組みになっています。

※ブラウザのポップアップブロック機能が有効になっていると、アイコンを押してもダウンロードが行われない場合があります。

 

作り方

ここでは、クリックによってダウンロードを開始させたいオブジェクト(図、ボタン、テキスト等)の名前が「fig1」であることを前提として説明します。これ以外の名前である場合には、下記のスクリプト中「fig1」とあるのを、適宜別の名前に置き換えてご利用下さい。

 

アプレットのグローバルJavaスクリプトに、以下のスクリプトを記述します。

 

function ggbOnInit() {

  //URLにIDが含まれる場合に限って、DLアイコンを表示する。
  ggbApplet.setVisible('fig1',false);
  if(location.href.includes('id')==true){
    ggbApplet.setVisible('fig1',true);
  }

}

function dl(){

  //アプレットを表示しているページのURLを取得
  var url = location.href;

  //URLにIDが含まれているかをチェック
  if(url.includes('id')==false){
    alert('このページでは、ボタンによるダウンロードはできません。');
    return;
  }

  //IDを取得
  var idText = url.slice(url.indexOf('id')+3);
  idText = idText.slice(0,idText.indexOf('/'));

  //ダウンロード用URLを生成
  var dlURL = 'https://www.geogebra.org/material/download/format/file/id/'+idText;

  //ダウンロード
  window.open(dlURL);

}

ダウンロードアイコンの図や、ボタン、テキストなど、クリックによってダウンロードを開始させたいオブジェクトを作成します。

そのオブジェクトのOn Click スクリプトに、以下のJavaScriptを記述します。

dl();

以上です。