最新版を確認
ナビゲーションに移動
検索に移動
Meryの最新版の有無を( http://haijin-boys.com/rss.xml )から確認します。
「イベントで実行」を設定しておけば自動的に確認することが出来ますが、 「スクロールした時」など頻繁に実行されるイベントを設定するとサーバーに優しくないので 「アクティブな文書が変更された時」などがおすすめです。
ソース
// -----------------------------------------------------------------------------
// 最新版を確認
//
// Copyright (c) 2016 diaphragm
// Released under the MIT license
// http://opensource.org/licenses/mit-license.php
// -----------------------------------------------------------------------------
// Retrieving Data Using Script (Windows)
// https://msdn.microsoft.com/en-us/library/windows/desktop/aa384071(v=vs.85).aspx
function getText(strURL)
{
var strResult;
try
{
// Create the WinHTTPRequest ActiveX Object.
var WinHttpReq = new ActiveXObject(
"WinHttp.WinHttpRequest.5.1");
// Create an HTTP request.
var temp = WinHttpReq.Open("GET", strURL, false);
// Send the HTTP request.
WinHttpReq.Send();
// Retrieve the response text.
strResult = WinHttpReq.ResponseText;
}
catch (objError)
{
strResult = objError + "\n"
strResult += "WinHTTP returned error: " +
(objError.number & 0xFFFF).toString() + "\n\n";
strResult += objError.description;
}
// Return the response text.
return strResult;
}
//window.alert(getText("http://www.microsoft.com/default.htm"));
// ピリオド区切りバージョン番号の比較 | Life is Real.
// https://ptsv.org/2015/09/01/ピリオド区切りバージョン番号の比較/
function version(a,op,b)
{
a = a.split('.');
b = b.split('.');
var ia,ib;
var limit = Math.max(a.length,b.length);
while(limit--)
{
ia = parseInt(a.shift() || 0);
ib = parseInt(b.shift() || 0);
if(ia != ib)
break;
}
return eval([ia,op,ib].join(' '));
}
function checkUpdate(){
var rss_uri = 'http://haijin-boys.com/rss.xml';
var res = getText(rss_uri);
m = res.replace(/[\n\r]/g,"").match(/<title>Mery\s*(\d+\.\d+\.\d+)<\/title>.*?<link>(.+?)<\/link>/);
new_version = m[1];
new_uri = m[2];
if(version(Editor.Version, "<", new_version)){
var mes = "新しいバージョン(" + new_version + ")があるようです。\nWebサイトを開きますか?";
if(confirm(mes)){
var Shell = new ActiveXObject("WScript.Shell");
Shell.Run(new_uri);
}
}
}
try{
checkUpdate();
}catch(e){
// nothing to do
}
スポンサーリンク