「最新版を確認」の版間の差分
ソースコードの修正(URLの指定先がRSSだと403エラーが発生してhtmlソースを取得できないため) |
→ソースコード: ソースコードの整形、コメントの追加 |
||
| 14行目: | 14行目: | ||
// スクリプトを使用したデータの取得 | // スクリプトを使用したデータの取得 | ||
// https://learn.microsoft.com/ja-jp/windows/win32/winhttp/retrieving-data-using-script | // https://learn.microsoft.com/ja-jp/windows/win32/winhttp/retrieving-data-using-script | ||
function getText(strURL) | 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; | |||
} | } | ||
// ピリオド区切りバージョン番号の比較 | // ピリオド区切りバージョン番号の比較 | ||
// https://ptsv.jp/2015/09/01/ピリオド区切りバージョン番号の比較/ | // https://ptsv.jp/2015/09/01/ピリオド区切りバージョン番号の比較/ | ||
function version(a,op,b) | 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(){ | // アップデートのチェック | ||
function checkUpdate() { | |||
var rss_uri = 'https://www.haijin-boys.com/'; | |||
var res = getText(rss_uri); | |||
var m = res.replace(/[\n\r]/g, "").match(/<a href="(.+?)" title="テキストエディター「Mery」ベータ版 Ver (\d\.\d\.\d) を公開" rel="bookmark">/); | |||
var new_uri = m[1]; | |||
var new_version = 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); | |||
} | |||
} else { | |||
window.alert("最新のバージョンがインストールされています。"); | |||
} | |||
} | } | ||
try{ | // checkUpdate関数の実行 | ||
try { | |||
}catch(e){ | checkUpdate(); | ||
} catch (e) { | |||
window.alert("バージョンの確認ができませんでした。"); | |||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
スポンサーリンク