「
Yahoo!天気情報
」を編集中
2020年5月11日 (月) 23:57時点における
Sukemaru
(
トーク
|
投稿記録
)
による版
(
→
sukemaru 版
:
画像を追加)
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
ナビゲーションに移動
検索に移動
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
Yahoo! 天気情報の地域指定 URL は、「[https://weather.yahoo.co.jp/weather/rss/ 提供RSS - Yahoo!天気・災害]」 のページで各地域のリンクURL末尾 <code>****.xml</code> の部分を調べて、マクロのコード内の URL 書き換えてください。 <br>(※ 各地域のリンク URL <code><nowiki>https://rss-weather.yahoo.co.jp/rss/days/<****>.xml</nowiki></code> の <code><nowiki>https://rss-weather</nowiki></code> を <code><nowiki>http://rss.weather</nowiki></code> に書き換えでもよい) <br><br> == kuro 版 == Yahooの天気情報を取得し、カーソル位置に挿入します。 使用前にurlの部分を任意の地域の情報に書き換えてください。 <source lang="javascript"> // ----------------------------------------------------------------------------- // Yahoo!天気情報 // // Copyright (c) Kuro. All Rights Reserved. // www: http://www.haijin-boys.com/ // ----------------------------------------------------------------------------- // Yahoo!天気情報 // http://weather.yahoo.co.jp/weather/public/rss.html var url = "http://rss.weather.yahoo.co.jp/rss/days/4410.xml"; var x = new ActiveXObject("Microsoft.XMLDOM"); x.async = false; x.setProperty("ServerHTTPRequest", true); x.load(url); var items = x.getElementsByTagName("item"); for (var i = 0; i < items.length; i++) { var children = items[i].childNodes; for (var j = 0; j < children.length; j++) { if (children[j].nodeName == "title") document.selection.Text = children[j].text + "\n"; } } </source> <br> == sukemaru 版 == <blockquote> ・気象情報がドキュメント内に書きこまれても困りますよね?<br> ・アウトプットバーが開くとジャマじゃないですか?<br> ・メッセージボックスだと警告サウンドがウルサイかもしれません…<br> → ポップアップメニューだったら「イイ感じ」じゃん! </blockquote><br clear=all> [[ファイル:Yahoo! 天気情報.png|link=|ポップアップメニュー/ダイアログ表示]] <br clear=all><br> kuro 版をベースにして '''<q>ポップアップメニュー</q>、<q>アウトプットバー</q>、<q>メッセージボックス</q>''' のいずれで表示するかを選択できるようにしました。 <br> ==== ポップアップメニュー ==== 設定項目 <code>outputEnable</code> と <code>alertEnable</code> の '''両方が <span style="color:#c00;">false</span>''' ならポップアップメニューで表示します。 * 「― Yahoo! 天気・災害 ―」の行をクリックすると、気象情報のページをブラウザで開きます。 * 「― Yahoo! 天気・災害 ―」以外の場所をクリックした場合は、ポップアップを閉じます。 * ポップアップメニューは <kbd>Space</kbd> キーでキャンセルできるようにしてあります。 ==== アウトプット ==== 設定項目 <code>outputEnable</code> が <b style="color:#0000c0;">true</b> ならアウトプットバーに表示します。 <br> ==== メッセージボックス ==== 設定項目 <code>alertEnable</code> が <b style="color:#0000c0;">true</b> ならメッセージボックスで表示します。 * 設定項目 <code>confirmEnable</code> が <b style="color:#0000c0;">true</b> のときは確認ダイアログ、<b style="color:#c00;">false</b> のときは警告ダイアログで表示します。 * 設定項目 <code>confirmEnable</code> が <b style="color:#0000c0;">true</b> のとき、<kbd>OK</kbd> をクリックすると、気象情報のページをブラウザで開きます。 <br> ピンポイント天気の URL は、「[https://weather.yahoo.co.jp/weather/ Yahoo!天気・災害]」のページ内(左上あたり)にある検索ボックスに郵便番号を入力して、開いたページで取得できます。[https://www.yahoo-help.jp/app/answers/detail/p/616/a_id/44558/~/%E5%B8%82%E5%8C%BA%E7%94%BA%E6%9D%91%E3%81%94%E3%81%A8%E3%81%AE%E5%A4%A9%E6%B0%97%E6%83%85%E5%A0%B1%E3%82%92%E7%9F%A5%E3%82%8A%E3%81%9F%E3%81%84%EF%BC%88%E3%83%94%E3%83%B3%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E5%A4%A9%E6%B0%97%EF%BC%89] <br> ==== ソースコード ==== ;ダウンロード >> 「[[ファイル:Yahoo!_天気情報.zip]]」(アイコン入り) 最終更新: 2020/05/11(第2版) <source lang="javascript"> #title = "Yahoo! 天気情報..." #tooltip="Yahoo! 天気・災害" // #icon="weather.ico" // #icon = "Mery用 マテリアルデザインっぽいアイコン.icl",335 /** * --------------------------------------------------------- * Yahoo!天気情報 * Original Copyright (c) Kuro. All Rights Reserved. * www: http://www.haijin-boys.com/ * --------------------------------------------------------- * Modified by sukemaru, 2020/01/02 - 2020/05/11 * https://www.haijin-boys.com/wiki/Yahoo!天気情報#sukemaru_版 * 2020/05/11: ダイアログ表示の変更 (警告 ⇒ 確認) * 現在日時のステータス表示を追加 * --------------------------------------------------------- * * 設定 outputEnable と alertEnable の両方が false ならポップアップメニューで表示。 * ポップアップメニューの「― Yahoo! 天気・災害 ―」の行をクリックすると * 気象情報をブラウザで開きます。 * (※ confirmEnable = true なら確認ダイアログを出してからブラウザで開く) * 「― Yahoo! 天気・災害 ―」以外の場所をクリックした場合は、ポップアップを閉じます。 */ // ---------- ▼ 設定項目 ▼ ---------- // ■ アウトプットバーに表示 var outputEnable = false; // ■ ダイアログに表示 var alertEnable = false; // ■ ブラウザで開くまえに確認ダイアログを表示 var confirmEnable = true; // ■ 地域を指定 (URL) var regionURL = "http://rss.weather.yahoo.co.jp/rss/days/4410.xml"; // 東京都 // Yahoo! 天気情報の地域指定 URL は // https://weather.yahoo.co.jp/weather/rss/ // のページで各地域のリンクURL末尾 "****.xml" の "****" 部分を調べて書き換えること // ※ 各地域のリンクURL https://rss-weather.yahoo.co.jp/rss/days/<****>.xml の // "https://rss-weather" を "http://rss.weather" に書き換えでもよい // ■ ポップアップメニューの「Yahoo! 天気・災害」をクリックしたときに開く URL var weatherURL = "https://weather.yahoo.co.jp/weather/13/4410/13101.html"; // 千代田区のピンポイント天気 // weatherURL = ""; //「Yahoo! 天気・災害」トップページ // weatherURL = "https://tenki.jp/"; //「日本気象協会 tenki.jp【公式】」 // weatherURL = "https://www.jma.go.jp/jp/kishojoho/"; //「気象庁 | 気象情報」 // ---------- ▲ 設定項目 ▲ ---------- Status = " " + DateTimeEx( new Date() ); // RSS を取得 var x = new ActiveXObject( "Microsoft.XMLDOM" ); x.async = false; x.setProperty( "ServerHTTPRequest", true ); x.load( regionURL ); var items = x.getElementsByTagName( "item" ); var a = [], dateTime = ""; for ( var i = 0, iLen = items.length; i < iLen; i ++ ) { var children = items[i].childNodes; for ( var j = 0, cLen = children.length, c; j < cLen; j ++ ) { c = children[j]; if ( c.nodeName == "title" ) { a.push( c.text ); } if ( ! dateTime && c.nodeName == "pubDate" ) { dateTime = DateTimeEx( c.text ); } } } var reg = / - Yahoo!天気・災害$/gm; var url = weatherURL ? weatherURL : "https://weather.yahoo.co.jp/weather/"; var confirmStr = "気象情報をブラウザで開きますか? "; // アウトプットバーで表示 if ( outputEnable ) { OutputBar.Writeln( dateTime + " 更新 \n" + "- Yahoo!天気・災害 - \n" + a.join( "\n" ).replace( reg, "" ) + "\n" ); OutputBar.Visible = true; } // ダイアログで表示 if ( alertEnable ) { a.splice( a.length-3, 0, "" ); var messageStr = " - Yahoo!天気・災害 - \n " + dateTime + " 更新 \n\n" + a.join( "\n" ).replace( /(\d+)(?=日)/g, PadSpc ) .replace( /【 ([^ ]{2}) 】/g, "【 $1 】" ) .replace( /】\s*/g, "】 " ) .replace( reg, " " ).replace( / (\S+)$/gm, "\t$1" ); if ( ! confirmEnable ) { Alert( messageStr ); } else if ( Confirm( messageStr + "\n\n" + confirmStr ) ) { new ActiveXObject( "WScript.Shell" ).Run( url ); } } // ポップアップメニューで表示 if ( ! outputEnable && ! alertEnable ) { var menuPos = 1; // ■ 1 ならマウス位置 / 0 ならキャレット位置にポップアップ var menu = CreatePopupMenu(); a.splice( 1, 0, "" ); a.splice( 9, 0, "" ); a.unshift( " ― Yahoo! 天気・災害 ― ", " " + dateTime + " 更新& ", "" ); for ( var i = 0, len = a.length; i < len; i++ ) { menu.Add( a[i].replace( reg, "" ).replace( /(\d+)(?=日)/, PadSpc ) .replace( /【 ([^ ]{2}) 】/, "【 $1 】" ).replace( /】\s*/g, "】 " ) .replace( reg, " " ).replace( / - (\S+)$/, "\t$1" ) // .replace( /】\s*/, "】 " ).replace( / - /, "\t" ) , ( i == 0 ) ? 1 : 0 , a[i] ? 0 : meMenuSeparator ); } if ( menu.Track( menuPos ) == 1 && ( ! confirmEnable || Confirm( confirmStr ) ) ) { new ActiveXObject( "WScript.Shell" ).Run( url ); } } Status = " " + DateTimeEx( new Date() ); /** * 関数 DateTimeEx( date ) * 引数の日時を日本時間 "YYYY年M月D日 h時mm分" の文字列で返す(秒なし) */ function DateTimeEx( dt ) { var dd = new Date( Date.parse( dt ) ); var m = dd.getMinutes(), mm = m < 10 ? "0" + m : m; return dd.getFullYear() + "年" + ( dd.getMonth() + 1 ) + "月" + dd.getDate() + "日 " + dd.getHours() + "時" + mm + "分"; } /** * 関数 DateTime( bar, utc ) * 現在日時を日本時間 "YYYY-MM-DD hh:mm:ss UTC+0900" の文字列で返す * 引数 bar は年月日の区切り文字 ( デフォルト: "/" ) * 引数 utc は文字列 "UTC+0900" の表示の設定用 ( true / false ) * 引数を省略した場合は "YYYY/MM/DD hh:mm:ss" の文字列で返す */ function DateTime( bar, utc, dd ) { bar = bar || "/"; dd = dd || new Date(); var yymmdd = dd.getFullYear() + bar + ( dd.getMonth() + 1 ) + bar + dd.getDate(); var hhmmss = utc ? dd.toTimeString() : dd.toLocaleTimeString(); return PadZero( yymmdd + " " + hhmmss ); /** * 関数 PadZero( str ) * 文字列中の半角1ケタの数字を0埋めして2ケタで返す * 小数点(半角ドット)以下は0埋めしない */ function PadZero( str ) { return String( str ).replace( /[0-9]+/g , function( $0 ) { return $0.length < 2 ? "0" + $0 : $0; } ); } } /** * 関数 PadSpc( str ) * 文字列中の半角1ケタの数字を0埋めして2ケタで返す * 小数点(半角ドット)以下は0埋めしない */ function PadSpc( str ) { return String( str ).replace( /[0-9]+/g , function( $0 ) { return $0.length < 2 ? " " + $0 : $0; } ); } </source>
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク