MediaWiki‐ノート:Common.js/過去ログ1

各検索エンジンのロゴの寸法

Suisuiさんが追加されたSpecialSearchEnhancedですが、各社サーチエンジンのロゴサイズが違うためGoogle以外は画像が歪んでしまうので、以下の2つの指定をはずしませんか?--Masao 2007年2月20日 (火) 08:19 (UTC)

  img.style.width = "135px";
  img.style.height = "35px";
これらの画像はフリーでアップロードできないため好きなサイズの物を作ることができません。この指定を外すとそれぞれ(えらく)バラバラの大きさで表示されます。そのためバランスを保ってだいたい同程度の大きさで表示するために検討したのは以下の3つです。
  • Gecko以外のブラウザではimageで縦横比を保っての自動縮小はうまく働きませんでした。(方法があれば教えてください)これができれば、あるいは私の環境の問題であればこれが一番いい方法と思います。ただし、この場合でも画像に歪みはでます。
  • JavaScriptで画像のサイズを調べて縦横比を保って縮小する事も考えましたが画像をたびたび変更するわけではないので用途からすると明らかに無駄です。
  • SpecialSearchEnhancedの引数に画像のサイズ指定を含めて、画像ごとに個別にきちんと見えるサイズにればゆがみを最小に押さえて表示する事も可能でしょう。しかし、計算だけでは出せないため作業、スクリプトの読みやすさ共に煩雑になる事から使用を避けました。また、おそらく日本語版以外で問題になることはないということからも使用を避けました。

それでもあえてサイズ指定をするのであればきちんと見えるサイズを画像ごとに指定してください。それか、きちんと見える画像を教えてください。現在のサイズはGoogleのバナーのサイズに合わせています。--Suisui 2007年2月21日 (水) 03:47 (UTC)

横から失礼します。
   img.style.width = "135px";
   img.style.height = "*";
ではどうでしょうか(とりあえずOperaとFireFoxで試してみましたが 問題無さそうです)。-- D.328 2007/02/21 06:22 (UTC)
IEでは一定した結果が得られません--Suisui 2007年2月21日 (水) 19:13 (UTC)

Template:小文字

Template‐ノート:小文字で議論されている、記事タイトルを小文字ではじめるスクリプトの導入は可能でしょうか?該当のスクリプトは利用者:Fryed-peach/RealTitleBanner.jsに切り出してあります。--fryed-peach 2007年3月9日 (金) 01:42 (UTC)

導入されました。--fryed-peach 2007年5月8日 (火) 08:50 (UTC)

Template:Navbox generic折畳機能について

The necessary code about autocollapse is here : 利用者:Alexsh/collapse.js,it's test OK. Please add to Common.js--Alex S.H. Lin 2007年4月9日 (月) 15:02 (UTC)

Template‐ノート:小文字などでも少し触れられていますが、enの同名スクリプトにて導入されているテーブルの折りたたみ機能を日本語版でも導入して欲しいんですが・・・可能でしょうか。--航汰 2007年6月5日 (火) 07:21 (UTC)
導入しました。Navbox generiを使ったテンプレートが2個以上ページに貼られていると自動で折りたたみます。--cpro 2007年6月13日 (水) 03:00 (UTC)

Dynamic Navigation Bars の div 要素以外への対応

再掲です。現在の Dynamic Navigation Bars は div要素にしか対応していませんが、意味マークアップ上妥当ではない場合もある為、此れを dl,dt,dd要素にも対応したものにして戴けないでしょうか。現在の所、Wikipedia:ウィキプロジェクト 国/フッタで使われているテンプレートに利用する事を考えています。因みに自前のWikiにて試してみたりもしたのですが、JavaScriptはよく知らないので此れで良いのかは分りかねております。--kahusi (會話) 2007年7月19日 (木) 10:22 (UTC)

AJAX SiteNotice

Hello. I see the AJAX SiteNotice script has been removed. If you re-add it, please use this updated code:

/******
** AJAX SiteNotice
**  - loads site notice under fundraiser box
**  - by [[m:user:Pathoschild]] <http://meta.wikimedia.org/wiki/User:Pathoschild/Scripts/AJAX_SiteNotice>
******/
document.write('<script type="text/javascript" src="'
  + 'http://meta.wikimedia.org/w/index.php?title=User:Pathoschild/Scripts/AJAX_SiteNotice.js' 
  + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

Pathoschild 02:08:52, 15 11月 2007 (UTC)

collapsibleについて

collapsibleに「Tnavbar」を付加しない場合、Titleが左にずれます。

そこでButton.style.style~以下をposition: absoluteを付加し絶対値にしていただけないでしょうか。合わせてcollapsibleにはposition: relativeを付加していただければ正常な表示になると思います。--Soregashi 2007年11月29日 (木) 12:51 (UTC)

提案された変更だとボタンがほとんど中央に来てしまうようだったので、Button.style に position = absolute, right = 0em を足し、float = right, text-align = right を抜きました。--Makotoy 2008年6月20日 (金) 15:25 (UTC)
この変更ですが差し戻していただけませんでしょうか。Template:Leafのようなテーブルで[隠す]ボタンの位置がおかしくなります。 --fryed-peach [会話|投稿] 2008年6月24日 (火) 04:07 (UTC)
戻しました。この問題を直すにはTemplate:Navbox_genericのコードをちゃんとみないといけないのかもしれません。 --Makotoy 2008年6月24日 (火) 04:35 (UTC)
どうやら絶対値にしてしまうとwidthを無視して右に寄ってしまうのが問題のようでした。--新幹線 2008年6月24日 (火) 12:25 (UTC)

検索時の全角・半角を正規化するスクリプト

2ch発のネタ。検索で全角英数字が半角と同一視されなくて不便だ、という話が挙がってまして、その対策として利用者:Cpro/transfercharwidth.jsというスクリプトを書いてみました。試してもらうと分かりますが、検索テキストボックスの内容が送信前にWP:NCに基づいて正規化されるようになります。「2ちゃんねる」を入れると2ちゃんねるに飛ぶなど。

問題がなければ Common.js に適用してしまいたいんですが、ちょっと課題が。

  • 利用者名に全角英数等を使っている場合、検索ボックスから直接利用者ページに飛べなくなります。
  • (全角チルダの曖昧さ回避ページ)に辿り着くのが困難になります。

後者は(波ダッシュ)から誘導するとか構成次第だと思いますが、前者はちょっと面倒かも。--cpro 2007年12月30日 (日) 03:37 (UTC)

「利用者:」・「user:」(注:大文字・小文字区別せず)が含まれている場合は変換しないってできませんか?--Goki 2008年1月7日 (月) 06:04 (UTC)
できます。のでそのようにしてみました。特別ページもContributionsやWhatlinkshereで意図して全角英数を入れるケースがありそうなので除外対象に。アイデアありがとうございます。--cpro 2008年1月7日 (月) 07:21 (UTC)
上記2点とも、正規化した場合は、したものとしないものの両方を検索条件に併記するようにするのはどうですか。「あ~る」→「あ~る あ〜る」。Luceneは検索条件を、文字種 (Unicodeブロックかなにか) を基準に分割してるようなので、すべての組み合わせを併記しなくて正規化前と正規化後だけで、ほぼ問題なくなるとおもう。あまりスマートじゃないですけど。 --Hatukanezumi 2008年1月7日 (月) 06:21 (UTC)
説明不足で申し訳ないんですが、特別:Searchの検索じゃなくて(Monobookだと)サイドバーに表示される検索ボックスに対する入力文字列を変換する機能なので、「表示」ボタンを押したときに併記されると困るのです。とここまで書いて思ったんですが、submit(送信時)イベントじゃなくて表示ボタンのclickイベント(及び入力欄でのenterキー)にだけ割り当てればいいのかな。わざわざ検索ボタンをクリックする人は非正規の表記をあえて探してるかも知れないし。--cpro 2008年1月7日 (月) 07:21 (UTC)
試してないのばればれですね。「表示」をクリックして検索ページにいっちゃったら意味ない。2chは見てないんですが、もともとは検索で同一視されてほしいという話ではないのですか。そうだとすれば、「表示」(またはEnter) では利用者ページを除いて正規化し、「検索」ではすべて正規化・併記すればいいとおもう。 --Hatukanezumi 2008年1月7日 (月) 11:25 (UTC)

長らくほったらかしになってましたが、関連した話題が出たきっかけに、Wikipedia:井戸端/subj/検索時の全角・半角文字をスクリプトで正規化で再提起してみました。現在の仕様では、submitイベントではなく「表示」ボタンのclickおよび入力欄のkeydownイベントに対応しています。--cpro 2009年10月30日 (金) 06:18 (UTC)

井戸端で2名の方から反応をいただいて、いまのところ大きな問題はなさそうです。ただやはりもうちょっと広く試用してもらった方がいいので、閲覧に大きな影響が出るものでもないし、試験的にCommon.jsに導入してしまおうと思うのですがいかがでしょうか。1週間ほど待って問題なければ実施します。--cpro 2009年11月25日 (水) 03:00 (UTC)
賛成 ご提案に賛成いたします。実際に導入してみて、もし問題が見つかれば対処する、ということでよいのではないかと思います。--Penn Station 2009年11月25日 (水) 03:36 (UTC)

MediaWiki:Common.js/NormalizeCharWidth.jsを作成し、Common.jsから呼び出すよう設定しました。各自ブラウザのキャッシュを破棄し、動作確認をお願いいたします。--cpro 2009年12月2日 (水) 06:13 (UTC)

collapseTable()

Template:BS3-startCollapsibleを利用した画像つき折り畳みテーブルを折り畳むと、英語版の「Waterloo to Brussels」では問題ありませんが、日本語版の「ウォータールー - ブリュッセル間」では折り畳むと画像が表示されません。Common.js の関係ありそうな部分を英語版と日本語版で比較してみると、collapseTable() の var Rows が次のように異なっています。

var Rows = Table.getElementsByTagName( "tr" );  //日本語版
var Rows = Table.rows; //英語版

これが影響している可能性はありましょうか。--Jms 2008年1月13日 (日) 00:47 (UTC)

この変更で問題なく表示できることを確認しました。可能であれば英語版と同様にしていただければ幸いです。--Jms 2008年1月14日 (月) 08:20 (UTC)
2008年2月25日に修正済みです。--Makotoy 2008年6月20日 (金) 15:25 (UTC)

Template:Superimpose 対応

Internet Explorer 6 で、Template:Superimposeがうまく表示されません。Wikipedia‐ノート:経路図テンプレート#BSoverlapの不具合に関連議論がありますが、結論としてはen:MediaWiki:Common.js由来のWikipedia‐ノート:経路図テンプレート/PngFix.jsを用いると解消します。これをMediaWiki:Common.jsに追加する様依頼しようと思います。問題があれば御指摘ください。--Jms 2008年5月7日 (水) 09:11 (UTC)

Collapsible tables

例えば小野伸二の末尾のナビゲーションテンプレートを見ていただければわかるように、背景色によっては collapsible tables の「表示」というボタンがみづらくなります({{tnavbar}} もみづらくなってますが、それはそれ)。そこで英語版と同様に createCollapseButtons() 関数の ButtonLink.setAttribute ...などとある直前に(createCollapseButtons(), 22行目)、

ButtonLink.style.color = Header.style.color;

という1行を加えることを提案します。これでタイトル部分の文字色が「表示」ボタンにも反映されるようになります。 --fryed-peach [会話|投稿] 2008年5月27日 (火) 03:48 (UTC)

できればスルーされている#collapsibleについて#collapseTable()の変更もしていただければ幸いです。--新幹線 2008年5月31日 (土) 04:23 (UTC)
#collapseTable() については2月の変更で直っていませんでしょうか?#collapsibleについては上の通り少し変えて対処しました。この件については、Header変数がでてくるのがもっと下なのでHeaderがちゃんと取得できた場合のみ実行されるところに突っ込んでおきました。できれば変更を依頼する前にちゃんと動くかテストしてください!--Makotoy 2008年6月20日 (金) 15:25 (UTC)

SpecialSearchEnhanced

Chatsuboこのようなお話が来ております。反応が欲しいようなのですが、あいにく私は英文は読めてもJavaScriptの知識を持ち合わせておらず返答しにくいので、どなたか対応いただけないでしょうか。--Tommy6素性会話素行2008年6月12日 (木) 13:14 (UTC)

Just a note about what's broken: go to search page and type any search expression, then click on one of the external search engine buttons. Depending on the search engine used, it won't give you correct answer or won't work at all. For instance, google will always give you results for the empty query and yahoo will display its front page. Guillaumito 2008年6月16日 (月) 13:18 (UTC)
(Guillaumitoさんのコメントの翻訳)壊れていた部分について簡単な説明を: search pageで検索語を入力して外部検索ボタンのどれかを押してみてください。検索エンジンによっては正しい結果が帰ってこなかったり、全く検索できないこともあります。たとえばGoogleはかならず空クエリの検索結果になるし、Yahoo!だとフロントページになってしまいます。--Makotoy 2008年6月16日 (月) 16:08 (UTC)
Summary of discussions here and there: the proposed changes are:
  • Use "searchText" field value for the query string, fallback to "powerSearchText" when it is unavailable
  • Add Wikiwix search engine
(Translation) 提案されている変更点は:
  • "searchText"フィールドの値を検索クエリに使用する。フィールドが存在しなければ "powerSearchText" フィールドの値を使う。
  • Wikiwixを外部検索エンジンのリストに追加する。
です。Guillaumitoさんから新しいバージョンの変更案がそのうちでるはずです。--Makotoy 2008年6月16日 (月) 16:49 (UTC) typo correction --Makotoy 2008年6月17日 (火) 00:53 (UTC)
Committed Guillaumito's fix on search field id as above, together with the wikiwix addition per below. // Guillaumitoさんの利用者サブページにアップされていた修正をコミットしました(検索フィールドid修正)。下のWikiwix追加もコミットしました。--Makotoy 2008年7月15日 (火) 12:13 (UTC)

Wikiwixのみ

一ヶ月ほどが経ちました。「Wikiwix の追加」を行う変更部分を抽出しました。問題が無いようでしたら、個別の修正を依頼します。

/* 1行目を検索し、その後方に2行目以降を追加する */
  var engine;
  var wikiwixo = new Object();
  wikiwixo["lang"] = "ja";
  wikiwixo["disp"] = "article";
  engine = SearchForm("Wikiwix", "http://www.wikiwix.com/", "http://logo.wikiwix.com/logo_mini.png",
                      "http://www.wikiwix.com/", "action", "", wikiwixo);
  div.appendChild(engine);

検索formのid指定間違いによるバグは、また後日。--Frozen-mikan 2008年7月15日 (火) 01:31 (UTC)

修正の方向性自体は前から提起されていることなので略式で提案の通りに修正しました。検索formのidバグも同時に修正してあります。--Makotoy 2008年7月15日 (火) 12:13 (UTC)

外部検索ボタンを全スキンで表示させる変更

現在、外部検索ボタンは、特定のスキンでしか表示されていません。私が確認した範囲では、スキンによって HTML構造が違い、form の順番が違うことで対応できないようでした。他に理由が無いのであれば、外部検索ボタンを全てのスキンで表示させるため、以下の物に変更して下さい。変更が不要な前後一行ずつを含んでいます。

  if (wgCanonicalNamespace != "Special" || wgCanonicalSpecialPageName != "Search") return;
  
  var mainNode = document.getElementById("powersearch"); // for all skins
  if (!mainNode) return;
//  mainNode = mainNode[0];
  mainNode.appendChild(document.createElement("center"));

既に外部検索については別の変更提案が出ていることは承知しておりますが、修正箇所が重ならないと判断し、修正依頼を出すことにしました。一応、動作確認をしました。--Frozen-mikan 2008年6月16日 (月) 18:28 (UTC)

一週間たってとくに反対意見もつかないようなので提案されたように修正しました。--Makotoy 2008年6月23日 (月) 11:35 (UTC)

作品名に半角括弧を含む作品の項目名について

Berryz工房の新アルバムで『5(FIVE)』というタイトルをそのまま 5(FIVE) で立項しようとしたところ、

警告: このページの記事名の付け方は、当ウィキペディアのガイドラインなどにそっていないかもしれません。理由は以下のとおりです。

ガイドラインにそっていないときは、記事名の変更を検討してみてください。なお、記事名を変更したときは、このページのリンク元を調べて、新しい記事へのリンクに変更するようにしてください。

以上の様なメッセージが出たので、5 (FIVE) で立項して、本来の表記である 5(FIVE) からリダイレクトするようにしたのですが、本来表記で立項したいので「記事名チェッカ」の修正をお願いします。--Szk7788 2008年9月3日 (水) 05:03 (UTC)

情報 WP:VP#作品名に半角括弧を含む作品の項目名についての件です。TitleChecker_excludeに追加すればできるとはおもいますが、上の要請については根拠となる事実が未検証ということで。 --Hatukanezumi 2008年9月3日 (水) 13:07 (UTC)

関数PngFixの独立

関数PngFixを英語版のMediaWiki:Common.js/IE60Fixes.jsように独立していかかでしょうか?IE6以外のユーザーにとってコードも軽くなるし、ページの読み取りもより速くなるでしょう。--百楽兎 2008年9月7日 (日) 08:04 (UTC)

特別:検索の簡素化提案

ロゴ除去

現在は特別:検索にカラフルなロゴが並んでいますが、ロゴは必要でしょうか。英語版のMediaWiki:Common.js/search.jsのように、シンプルなプルダウン・メニューに簡素化しませんか。私は「検索」するつもりでうっかりロゴをクリックしてしまうことが多いのでロゴが無い方が使い勝手がよいのですが、他の皆さんはいかがでしょうか。--miya 2008年12月22日 (月) 02:08 (UTC)

検索のプルダウンメニュー化

ロゴ除去を一歩進めて、英語版のようなプルダウンメニューにまとめるのはいかがですか。ソースはen:MediaWiki:Common.js/search.js、表示はen:Special:Searchで、左の枠に検索したい言葉を入れて、右のメニューで検索エンジンを選びます(デフォルトはMediaWiki検索)。この点についても、賛否・コメントいただければと思います。--miya 2008年12月23日 (火) 23:24 (UTC)

  • (賛成)すっきりしていて良いと思います。--ろう(Law soma) D C 2008年12月24日 (水) 02:41 (UTC)
  • (コメント)プルダウンメニュー版のスクリプトを、User:Mizusumashi/Script/SpecialSearchEnhanced.jsに作りました。ユーザースクリプトに
    importScript('User:Mizusumashi/Script/SpecialSearchEnhanced.js');
    と書き込んでもらえば()、試してみることができます(いまのところは、現状のロゴのあるものと同時に表示されますが、もちろんそれは意図していることではなく、このスクリプトで問題がなければ、現状のロゴのあるものを除去して置き換えることになります)。--mizusumashi月間感謝賞を応援します) 2008年12月24日 (水) 13:25 (UTC)
  • (追記)英語版をもとにしながらも、かなり改造したコードを製作した理由を説明します。
    1. 英語版には日本語話者に有力な検索エンジンであるgooが入っていなかった。これを入れるためには、コード本体のある程度の改造が必要だった。
    2. 英語版のコードは直感的ではなく、トリッキーな動作をしていた。
    3. 外部検索エンジンを使用するときには、名前空間指定が効果がないということを示す動作を入れたかった。
    4. 英語版のコードでは、外部検索エンジンを使用したときに、URIにゴミのような意味のない変数が入る。
    Windows XP + Mozilla 3.0.5、IE 7.0、Safari 3.1.2、Google Chrome 1.0、Opera 9.62、Sleipnir 2.8.4で動作確認し、分かったことを書いておきます。
    A. Windows XP + Safari 3.1.2 で、AltaVistaの検索をかけると不具合が出る。ただし、これは現状の日本語版のコードでもでる。
    B. Windows XP + IEで、Wikiwixの検索をかけると、移動先でエラーがでる(致命的なものではない)。これは、たぶん、WikiwixそのものとIEの問題なので、対処しようがないと思う。
    できれば、User:Mizusumashi/Script/SpecialSearchEnhanced.jsを上記のようにユーザースクリプトにインポートし、動作確認と報告を行っていただければと思います。--mizusumashi月間感謝賞を応援します) 2008年12月24日 (水) 20:15 (UTC)
  • (賛成)問題なく動作しました。分かりやすくて良いと思います。置き換え賛成です--was a bee 2008年12月24日 (水) 21:02 (UTC) (追記)--was a bee 2008年12月24日 (水) 21:17 (UTC) 訂正--was a bee 2008年12月24日 (水) 21:17 (UTC)
  • (コメント)Mac OS X 10.5.6+Safari 3.2.1・Firefox 3.0.5で動作確認しました。SafariでAltaVistaを試したとき、検索語が化けていました。現状のコードでも化けていました。それ以外は全て問題なく動作しました。大昔(10.4のころ/オプションに「ガジェット」の表示がなかったころ)、navipopを使うと記事名の部分が化けていた(せいで全くnavipopが読み込みをできておらず、使い物にならなかった)ので、Safariの仕様じゃないかなぁと思います。--ふわふわTalk 2008年12月26日 (金) 09:42 (UTC)

対処報告

User:Mizusumashi/Script/SpecialSearchEnhanced.jsMediaWiki:Common.js/SpecialSearchEnhanced.jsに移動させ、MediaWiki:Common.jsを書き換えて読み込むようにし、全てのユーザーに対して以前のロゴ表示ではなく、プルダウンメニューが表示されるようにいたしました。二点、注意していただきたい点があります:

  • Windows + Safari で、かつログアウトしている状態(IPユーザーの状態)では、検索先から5ボタンマウスのブラウザの戻る機能に割り当てられた(物理的な)ボタンのクリックで、検索画面に戻ることはできません。もっとも、ログアウトしている状態でもブラウザのGUIの(表示上の)戻るボタンでは戻れますし、ログインしていれば5ボタンマウスのクリックでも戻れます。しかし、これは以前の状態でもそうなることを確認できたので、とくに対処は行いませんでした。
  • User:Mizusumashi/Script/SpecialSearchEnhanced.jsは削除いたしましたので、これをインポートしている利用者スクリプトは、インポートを解除してください(解除しなくとも支障はないと思いますが、とくに保証はできません)。

以上、何か不具合があれば、ご報告いただければ幸いです。不具合報告の場所は、短期的には、このページでも私の会話ページでも構いませんが、長期的にはWikipedia:バグの報告で取り扱う案件になるだろうと思います。--mizusumashi月間感謝賞を応援します) 2008年12月29日 (月) 07:25 (UTC)

Monobook.js

MediaWiki‐ノート:Monobook.jsで関連する変更を提案しています。このページに直接関係する提案としては、こちらに以下のコードを追加します。

function LinkFA() 
{
   var a, b;
   // iterate over all <span>-elements
   for(var i=0; a = document.getElementsByTagName("span")[i]; i++) {
      // if found a AdQ span
      if(a.className == "FA") {
         // iterate over all <li>-elements
         for(var j=0; b = document.getElementsByTagName("li")[j]; j++) {
            // if found a FA link
            if(b.className == "interwiki-" + a.id) {
               b.style.padding = "0 0 0 16px";
               b.style.backgroundImage = "url('http://upload.wikimedia.org/wikipedia/ja/6/60/LinkFA-star.png')";
               b.style.backgroundRepeat = "no-repeat";
               b.title = "この記事は秀逸な記事に選ばれています";
            }
         }
      }
   }
}
addOnloadHook(LinkFA);

コメントをお待ちしています。--fryed-peach [会話|投稿] 2009年1月16日 (金) 04:57 (UTC)

対処 反映いたしました。--mizusumashi月間感謝賞を応援します) 2009年1月22日 (木) 10:14 (UTC)

LinkFAの多スキン対応

他言語版の秀逸な記事への言語間リンクを飾りつけるための LinkFA() 関数を、現在は未対応のスキンへ対応させることを計画しています。現在のコードはモノブックをはじめとする一部のスキンにしか対応しておらず、例えばケルンブルーでは期待通りに動作しません。そこで、改定案を利用者:Fryed-peach/FA.jsに置いております。試してみるには、自分のユーザースクリプト(モノブックなら特別:利用者ページ/monobook.js)に

importScript('User:Fryed-peach/FA.js');

と書いてください。ただし、モノブックなど現在のコードで対応済みのスキンでは星の画像が二重に表示されます。ちなみに、このコードはドイツ語版を基礎に改変を加えたものです。--fryed-peach [会話|投稿] 2009年1月30日 (金) 19:45 (UTC)

対処 反映いたしました。--mizusumashi月間感謝賞を応援します) 2009年2月6日 (金) 15:10 (UTC)
素早い対処ありがとうございます。--fryed-peach [会話|投稿] 2009年2月6日 (金) 17:02 (UTC)

節リンク移動問題へのJavaScript方式による対処

MediaWiki:Common.jsの変更を含む提案、Wikipedia:井戸端/subj/節リンク移動問題へのJavaScript方式による対処の提案を提出いたしました。--mizusumashi月間感謝賞を応援します) 2009年2月5日 (木) 16:20 (UTC)

(報告)SpecialSearchEnhanced.js が修正されました

報告 Wikipedia:バグの報告#検索エンジンを変更するとキーワード入力フィールドがグレー表示される (でも変更できる) で提案された内容に基づき、MediaWiki:Common.js/SpecialSearchEnhanced.js が修正されました。--Frozen-mikan 2010年3月2日 (火) 00:51 (UTC)

LinkFA のベクター対応

そろそろベクター・スキンへの変更が行われるようですので、{{Link FA}} で使われている、LinkFA() 関数のベクター対応を提案します。対応後のコードは利用者:Fryed-peach/FA.js にあります。Common.js の、

/*
 * 秀逸な記事
 */

から

addOnloadHook(LinkFA);

までをその内容で置き換えることになります。また、以前からクラシック、ケルンブルー、ノスタルジアの3スキンでは動作しませんでしたが、今回から完全に非対応とし、これらのスキン用のコードを除去しました。新しいコードを自分で試すには、各自のカスタムスタイルシートに

importScript('User:Fryed-peach/FA.js');

と書いてください。ご意見をお願いします。--fryed-peach [会話] 2010年5月15日 (土) 00:45 (UTC)

コメントベクターは未対応でしたか。{{Link FA en}} があるページで「モノブック」と「ベクター」で動作確認を行いました。(本件の適用に反対するものではありませんが、スタイル自体を変えるのはCSSに任せ、クラスの変更に留めたほうが良いと思っています。Link FA の id も "en" になってるから修正した方が良いと思う。)--Frozen-mikan 2010年5月15日 (土) 02:30 (UTC)
スタイル指定のCSSへの移動については、複数のページの編集が必要なため躊躇していたのですが(メンテナンスが面倒にならないか?)、座標スタイルなどスキンごとに保守されるものも増えてきましたし、いい機会なので検討してみます。
テンプレートの id 属性については、変えたほうがいいだろうとは思いますが、私からは提案しません。--fryed-peach [会話] 2010年5月16日 (日) 08:09 (UTC)
(追記)スタイル指定の CSS への移行についてMediaWiki‐ノート:Common.css#他言語版の秀逸な記事へのリンクのスタイルで提案しました。これに伴いコードのほうも変更しましたので、そのままでは動かなくなっています。--fryed-peach [会話] 2010年5月16日 (日) 08:46 (UTC)
Link FA のあるページ(古代エジプト)の「モノブック」「ベクター」「チック」「モダン」「シンプル」「マイスキン」の各外装にてクラス FA が付与されていることを確認。--Frozen-mikan 2010年5月16日 (日) 14:14 (UTC)
合意を得られたと判断し、編集依頼に出します。--fryed-peach [会話] 2010年5月28日 (金) 05:46 (UTC)

良質な記事への対応

「秀逸な記事」と同様に「良質な記事」についてもアイコンを付けたいという件について、MediaWiki‐ノート:Common.css#良質な記事への対応に提案をしております。こちらとも関連しておりますので、お知らせします。--Tam0031 2010年6月28日 (月) 17:14 (UTC)

利用者:Tam0031/vector.jsの内容をCommon.jsに追加することを正式提案したいと思います。上記、Fryed-peachさんのFA用スクリプトの該当箇所をGA用に書き換えただけです。--Tam0031 2010年7月3日 (土) 06:44 (UTC)

デフォルトで閉じた状態のテンプレート編集時にプレビューで内容確認しようとすると警告が出る問題

Wikipedia:バグの報告#デフォルトで閉じた状態のテンプレート編集時にプレビューで内容確認しようとすると警告が出るに報告されたこの問題は、MediaWiki:Common.jsのcreateCollapseButtons関数をen:MediaWiki:Common.jsのcreateCollapseButtons関数に置き換えれば解決することを確認しましたので、そのように置き換えることを提案します。--116.81.236.29 2010年7月9日 (金) 15:24 (UTC)

間違ってIPユーザで投稿してしまいましたが、上記は私矢口が投稿したものです。--矢口 2010年7月9日 (金) 15:27 (UTC)
賛成 報告された状況は改善すべきものです。ただし、英語版の関数をそのまま置き換えるという提案であれば MediaWiki:Common.css の方にも修正が必要です。私としては、スタイルをJS側から隔離できるので、なんら問題は無く、良い機会だと思っています。以下のスタイルは英語版の Common.css から複製しました。
/* [[MediaWiki:Common.js]] にある createCollapseButtons 関数を参照。 */
.collapseButton {
    float: right;
    font-weight: normal;
    text-align: right;
    width: auto;
}

/* [[Template:Navbox]] に配置する場合、左に配置されている [[Template:Tnavbar]] とのバランスを取る。 */
.navbox .collapseButton {
    width: 6em;
}
配置場所は .navbox-odd の直後、追加時期は JS の修正と同時か、より早いことが望ましいです。以上の内容を、Common.css へ追加することを提案します。--Frozen-mikan 2010年7月9日 (金) 18:15 (UTC)
フォローありがとうございます。たしかに英語版ではスタイルの指定がCSSへ移っていますね。私もスタイルはCSSで指定するほうが好ましいと思います。--矢口 2010年7月10日 (土) 15:40 (UTC)

透過PNGを処理するスクリプト

ベクター採用で重くなったという意見を受け、試しにIE6で半透明PNGを処理するMediaWiki:Common.js/IE60Fixes.jsというものを現在無効化しています。しかしその後様子を見ても然程改善は見られないようですが、再度復帰させるべきでしょうか。少しでも負荷を減らすべくこのまま無効化すべきでしょうか。

それ以前に、スクリプトをIE6で少しでも外すようにすべきなのでしょうか。これ以上独断で処理することは出来ません。皆様方からご意見を頂ければと思います。--Marine-Blue [ 会話 履歴 電信 ] 2010年7月20日 (火) 15:31 (UTC)

特に改善が見られないのであれば元に戻したほうが良いと思います。IE6で読み込み時に10秒程の待ち時間が発生するのはベクタースキンのみで、モノブックでは起きていません。ベクターでの負荷を気にするのであれば、条件分岐を付けるべきです。--Frozen-mikan 2010年7月21日 (水) 08:56 (UTC)
なるほど。ありがとうございます。変化があるかどうかを調べるという目的も達成されていますので、このまま反対がなければ復帰させようと思います。--Marine-Blue [ 会話 履歴 電信 ] 2010年7月21日 (水) 09:22 (UTC)

MediaWiki空間内に置かれているスクリプトおよびスタイルシートの為の体験用コード

最近、スクリプトやCSSに関する変更や導入の議論が増えてきているよう思いますが、多くの人に関わるものでも、JSやCSSについて元々よく知っている人以外、テストの仕方が分からない、そのコードを入れるとどうなるのかよく分からない、という状況があるように思います。そこでURLを通じて、MediaWiki空間にあるスクリプトまたはスタイルシートについてだけは、簡単に体験できるコードを導入してはどうか、と考えます。JSについては既に英語版で使用されているものです。以下、内容です。

JSやCSSについて広く意見を募る場合などに、特に有効に働くコードになるのではないかと思います。約10日ほどを目安に意見を募り、大きい反対等なければWikipedia:管理者伝言板/保護ページ編集へ追加を依頼しようかと考えています。ご意見、ご質問等、お待ちしてます。--Was a bee 2010年10月9日 (土) 08:36 (UTC)

賛成 便利な仕組みだと思います。挿入位置については、最初が良いと思います。活用例として英語版では、ページ間差分を表示するスクリプトがあります。このスクリプトでは、2つのページの最新版IDを取得し、生成した差分URLを新たなページとして表示しています。このリダイレクトのような機能は、可能な限り、他のスクリプトの読み込みが始まる前に処理を終えるべきです。--Frozen-mikan 2010年10月11日 (月) 04:36 (UTC)
賛成 必要な機能でしょう。というか、そろそろここらでスクリプトも一度整理して、ガジェットや機能を提案して導入するまでの流れをきちっと作っておいたほうがいいのかもしれません。が、それはともかく、with.jsについては賛成します。利用者名前空間も・・・とはふと思いましたが、しかし危険なコードがあったりすると大変ですから、MediaWiki名前空間に限定しておく必要があるでしょう。--青子守歌会話/履歴 2010年10月11日 (月) 20:24 (UTC)
情報 賛成2、大きい反対等なかった所で、少し遅くなりましたがWikipedia:管理者伝言板/保護ページ編集の方で依頼を行って来ました。--Was a bee 2010年10月19日 (火) 15:11 (UTC)
反映が終了しました。新しいコードの提案時や、既存のコードの体験時など、使用が広がれば幸いです。--Was a bee 2010年10月20日 (水) 15:57 (UTC)
情報 本当に概要だけですが、簡単な解説を作成しました。Help:WithJS withCSS --Was a bee 2010年10月26日 (火) 18:42 (UTC)
提案・整備ありがとうございました、とても便利だと思います。早速井戸端でのスクリプト紹介で利用させていただきました。体験用リンクURLを生成するテンプレートとして {{trial with}} を作成してみましたのでよければご利用ください。--cpro 2010年10月27日 (水) 02:08 (UTC)
trial withとほぼ同時に青子守歌さんにより {{with}} が作られ、こちらの方が高機能なので一本化しました。--cpro 2010年10月27日 (水) 04:25 (UTC)

強化型折りたたみ可能要素(ECE)

折りたたみというと、既にNavFrameなどの折りたたみ可能な表がありますが、それをさらに拡張し、より自由度の高い折りたたみを可能にする、「拡張型折りたたみ可能要素」機能(以後、ECE)の追加を提案します。

説明書
利用者:青子守歌/拡張型折りたたみ可能要素
コード
利用者:青子守歌/EnhancedCollapsibleElements.js
使用例
利用者:青子守歌/拡張型折りたたみ可能要素

同時に、テンプレート:ECEボタンも新しいテンプレートとして作成します。

とりあえず、致命的なコードの破壊はないと思いますので、問題なければMediaWiki名前空間に移動してwithJSを使って広く使用してもらえるようにしてみるのが良いかと思いますが、いかがでしょう。--青子守歌会話/履歴 2010年10月20日 (水) 17:33 (UTC)

賛成 です。置いてリンクで体験できるようにしてくれると、ありがたいです。--Was a bee 2010年10月25日 (月) 22:12 (UTC)

報告 提案後168時間で反対がなかったため、MediaWiki:EnhancedCollapsibleElements.jsに追加しました。また、ヘルプ:拡張型折りたたみ可能要素に解説を書きました。体験ページで体験することができます。--青子守歌会話/履歴 2010年10月28日 (木) 05:39 (UTC)

共通コードへの組み込み提案

MediaWiki:EnhancedCollapsibleElements.jsを、mediawiki:common.jsへ組み込むことを提案します。機能紹介は、ヘルプ:拡張型折りたたみ可能要素にあります。また、体験ページで体験することができます。古いブラウザは試す機会がなかったので分からないですが、Fx3.6, IE8での動作は確認しました。他の環境でのテストができるかた、おられましたらお願いします。--青子守歌会話/履歴 2010年11月6日 (土) 16:34 (UTC)

賛成 現行の主なブラウザ5つで動作確認しました。JavaScriptが無効化されている時に展開表示となることも確認しました。--Was a bee 2010年11月9日 (火) 18:58 (UTC)
コメント では、あと3日ほど待ってみて、反対がなければ導入したいと思います。--青子守歌会話/履歴 2010年11月13日 (土) 16:23 (UTC)

報告 反対もなかったため、導入しました。--青子守歌会話/履歴 2010年11月21日 (日) 12:25 (UTC)

Sorry for writing in English. Many users are not familiar with using SVG images available on Wikipedia/Commons in office applications, etc. This is particularly true, if the base size is small (example). Therefore, I suggest adding links to rendered PNG images in different resolutions to the file description page (see same example in en.wikipedia). The script was first implemented on Commons and in de-wikipedia, then in en.wikipedia. I originally had the idea, Commons:User:Slomox did the coding and en:User:TheDJ made some refinements. It is available at en:MediaWiki:Common.js/file.js. --Leyo 2010年11月13日 (土) 00:48 (UTC)

(試訳) 英語で書いて、ごめんなさい。多くの利用者は、ウィキペディアやコモンズで使用されているSVG画像をオフィスアプリケーションなどで使用することに慣れていません。このことは、基本サイズが小さいときに、とりわけあてはまります()。そのため、私は〔SVGを〕いくつかの異なる解像度でレンダリングしたPNG画像へのリンクを、ファイル解説ページに加えることを提案します(前記の例の英語版ページを参照)。このスクリプトは、はじめコモンズで実装され、ドイツ語版、さらに英語版に導入されました。私がもともとのアイデアを持っており、Commons:User:Slomoxがコーディングし、en:User:TheDJがそれを洗礼させました。スクリプトはen:MediaWiki:Common.js/file.jsにあります。
(訳者補足) 日本語版と英語版の「File:WikiProject Scouting BSA Eagle knot with Silver Palm.svg」を比較してみてください:
英語版には画像のすぐ下あたりに「This image rendered as PNG in other sizes: 200px, 500px, 1000px, 2000px.」といういくつかのリンクがあるのに、日本語版にはそれに相当するリンクはありません。このようなリンクを作るスクリプトを日本語版でも導入してはどうか、という提案です。--mizusumashi(みずすまし) 2011年3月17日 (木) 15:41 (UTC)


summaryEnterRejectかきかえ

WP:BUG#新しい節の追加で改良型編集ツールバーが反応しないにあるようなバグ(スクリプト中の.replaceが原因)を回避するため、以下のように書き換えることを提案します。

jQuery(document).ready(function()
{
	// キーが押されたとき
	$j("#wpSummary").keypress(function(e)
	{
		// 入力キーでなければ
		if(e.which ==0 || e.charCode ==0)
		{
			// 全イベント無効化
			e.preventDefault();
		}
	});

	// 保存ボタンのスタイル設定
	$j("#wpSave").css("font-weight", "normal");
});

詳しい仕様はまだ見てないので、漏れてる機能があるかもしれませんので、適宜修正してください(上のやつはCC0で自由に使ってください)。--青子守歌会話/履歴 2011年2月19日 (土) 16:40 (UTC)

賛成 良いんじゃないでしょうか。コードこそ全然違いますが、特に挙動も変わらないようなので問題ないと考えます。--Marine-Blue [ 会話 履歴 電信 ] 2011年2月19日 (土) 16:43 (UTC)

コメント e.preventDefault() というのは知りませんでした。勉強になります。
しかし、Ubuntu Linux 上で、そのコードをローカルの MediaWiki 1.17wmf1 で試したところ、Fire Fox 3.6.13 では機能しましたが(保存がされない)、Google Chrome 9.0.597.98 では機能しませんでした(保存がされる)。デバッカで確認したところ、後者では、エンターキー入力時 e.which と e.charCode ともに 13 が設定されるようです。
このあたりのイベントデータの正しい仕様などは確認していませんが、従来のコードは e.keyCode == 13 のときエンターキー → 動作変更、という判定になっており、それで今まで動いてきたようですから、この判定条件は維持するということでよいのではないでしょうか。具体的には、次のコードです:

jQuery(document).ready(function()
{
        // キーが押されたとき
        $j("#wpSummary").keypress(function(e)
        {
                if(e.keyCode == 13)
                {
                        // 全イベント無効化
                        e.preventDefault();
                }
        });
 
        // 保存ボタンのスタイル設定
        $j("#wpSave").css("font-weight", "normal");
});

また、MediaWiki:Gadget-SummaryEnterPreview.jsも同時に変更する必要があります。こちらも判定条件を同じにすると、次のコードとなります:

var summaryEnterRejectDisable = true;
 
jQuery(document).ready(function()
{
        // キーが押されたとき
        $j("#wpSummary").keypress(function(e)
        {
                if(e.keyCode == 13)
                {
                        $j('#wpPreview').click();
                }
        });
 
        $j('#wpSave').css('font-weight', 'normal');
        $j('#wpPreview').css('font-weight', 'bold');
});

もしかしたら、こちらにも e.preventDefault() を組み込む必要があるかもしれませんが、前記の 2ブラウザではこれで問題なく機能しましたし、たぶん必要ないと思います。--mizusumashi(みずすまし) 2011年2月19日 (土) 17:48 (UTC)

反対 調査を行い、問題が発見されたので、失礼ながら青子守歌さんの2011年2月19日 (土) 16:40 (UTC)案に反対します。そのコードだと、矢印キーも拒絶してしまうので、カーソルを動かせなくなってしまうようです。--mizusumashi(みずすまし) 2011年2月20日 (日) 03:44 (UTC)

コメント 引き続き、 mizusumashiです。私の環境でテキストインプットボックスでエンターキーを入力した場合の動作を確認しました:

  • Windows XP Home Edition Version 2002 Service Pack 3
    • Google Chrome 9.0.597.98
      • keydown: event.which = 13, event.charCode = 0, event.keyCode = 13
      • keypress: event.which = 13, event.charCode = 13, event.keyCode = 13
      • keyup: event.which = 13, event.charCode = 0, event.keyCode = 13
    • Safari 5.0.3(7533.19.4)
      • keydown: event.which = 13, event.charCode = 0, event.keyCode = 13
      • keypress: event.which = 13, event.charCode = 13, event.keyCode = 13
      • keyup: event.which = 13, event.charCode = 0, event.keyCode = 13
    • Windows Internet Explorer 8 (8.0.6001.18702)
      • keydown: event.which = 13, event.charCode = undefined, event.keyCode = 13
      • keypress: event.which = 13, event.charCode = undefined, event.keyCode = 13
      • keyup: event.which = 13, event.charCode = undefined, event.keyCode = 13
    • Opera 11.01(1190)
      • keydown: event.which = 13, event.charCode = undefined, event.keyCode = 13
      • keyup: event.which = 13, event.charCode = undefined, event.keyCode = 13
      • keypress: event.which = 13, event.charCode = undefined, event.keyCode = 13
  • Ubuntu Linux 10.04 LTS
    • Google Chrome 9.0.597.98 (keydown と keyup が二回発生)
      • keydown: event.which = 229, event.charCode = 0, event.keyCode = 229
      • keydown: event.which = 13, event.charCode = 0, event.keyCode = 13
      • keypress: event.which = 13, event.charCode = 13, event.keyCode = 13
      • keyup: event.which = 13, event.charCode = 0, event.keyCode = 13
      • keyup: event.which = 13, event.charCode = 0, event.keyCode = 13
    • FireFox 3.6.13
      • keydown: event.which = 13, event.charCode = 0, event.keyCode = 13
      • keypress: event.which = 13, event.charCode = 0, event.keyCode = 13
      • keyup: event.which = 13, event.charCode = 0, event.keyCode = 13

利用者:Mizusumashi/Script/InputTest.js‎をロードして、利用者:Mizusumashi/Template/基礎研究室3‎の一番うえのテキストボックスで確認できます。JavaScript Event KeyCode Test Pageというページも見つけました。
これらの範囲では、やはり、keypressイベントの event.keyCode == 13 を条件にすれば、エンターキーの入力をフックできます。古いFireFox では keypress の event.keyCode に問題があるようなので、event.which のほうが良いのかもしれませんが、いままで event.keyCode == 13 でバグ報告がなかったので、ひとまずそれを維持でよいと思います。
もし、エンターキー以外の特殊キーもフックしたければ、keydownイベントの typeof event.charCode == 'unefined' || event.charCode = 0 で可能だと思いますが、それでは前述のようにカーソルを動かす矢印キーも入力拒絶してしまうのが問題です(回避できないくはないが)。--mizusumashi(みずすまし) 2011年2月20日 (日) 03:44 (UTC)

賛成 (e.which ==0 || e.charCode ==0)は元のコードからとったものなので、特にこだわり(正しさの証明、保証)はありません、e.keyCode == 13の方が正しく動くのであればそちらで良いと思います。--青子守歌会話/履歴 2011年2月20日 (日) 15:29 (UTC)

っとすいません、賛成してから気づきましたが、最初の案からsummaryEnterRejectDisableのことは全然対応してませんでしたね。ということで、以下のようにifで囲ったものが最終形態でしょうか。

// 無効化されてなければ
if (summaryEnterRejectDisable == false) 
{
	// エンターキーでの入力送信を無効化
	jQuery(document).ready(function()
	{
		// キーが押されたとき
		$j("#wpSummary").keypress(function(e)
		{
			// エンターキーなら
			if (e.keyCode == 13) 
			{
				// 全イベント無効化
				e.preventDefault();
			}
		});
		
		// 保存ボタンのスタイル設定
		$j("#wpSave").css("font-weight", "normal");
	});
}

あと何か忘れてる機能とかありそうでしたら適宜付け加えてください。--青子守歌会話/履歴 2011年2月20日 (日) 21:58 (UTC)

コメント 色々と配慮されており、すばらしいと思います。大きい点を1点と細かい点を2点。

  • 大きい1点目、summaryEnterRejectDisable は、ガジェットで書き換えるグローバル変数です。予め false と定義しておき未定義エラーを防ぎ、かつ ready 時に判定すべきです。
  • 2点目、変数 $j はグローバルなので、jQuery( document ).ready( function( $ ) { として、関数ローカルの $ (もちろん $j でも良い) を使うよう防御的に記述した方が良いと思います[1]
  • 3点目、e.preventDefault() のコメントが「全イベント無効化」となっていますが、「イベント e を(キャンセル可能であれば)キャンセルする」関数ですので、そのように変えた方が良いと思います[2]
/*
 * 要約欄でエンターキーを押した際に投稿されないようにする
 * 
 * window.summaryEnterRejectDisable - 
 *   この機能を無効化させるには jQuery.ready() が呼び出されるまでに true にする
 */
jQuery( document ).ready( function( $ )
{
  // 未定義であるか、無効化されてなければ
  if ( typeof summaryEnterRejectDisable === 'undefined' || summaryEnterRejectDisable == false )
  {
    // キーが押されたとき
    $( "#wpSummary" ).keypress( function( e )
    {
      // エンターキーならば
      if ( e.keyCode == 13 )
      {
        // イベントをキャンセル
        e.preventDefault();
      }
    });

    // アクセシビリティを考慮
    $( "#wpSave" ).css( "font-weight" , "normal" );
  }
});

結局、他のコメントも書き換えてしまいました。ご検討いただけると有り難いです。--Frozen-mikan 2011年2月21日 (月) 04:13 (UTC) 読み込み順考慮のため修正。--Frozen-mikan 2011年2月21日 (月) 10:40 (UTC)

コメント 詳しい検証はまだなのですが、更新されるのをとめるために簡単に指摘しておきます。
MW 1.17 ではスクリプトのロード順序が、ガジェット → MediaWiki:Common.js → ユーザースクリプトの順番のようです(r82533とr82543で確認)。ですので、Frozen-mikanさんのご提示のコードでは、ガジェットで動作がキャンセルできないだろうと思います。--mizusumashi(みずすまし)

ありがとうございます。ガジェットの方が先に読まれることを考慮した作りにしましょう。その方向で書き換えました。--Frozen-mikan 2011年2月21日 (月) 10:40 (UTC)

賛成 Frozen-mikanさんの2月21日 10:40のコードで動作確認をしました(OSやブラウザの条件は少ないけど)。問題ないと思います。MediaWiki:Gadget-SummaryEnterSave.jsMediaWiki:Gadget-SummaryEnterPreview.jsも同時に書き換えましょう(こちらも動作確認をとっています)。
MediaWiki:Gadget-SummaryEnterSave.js

/*
 * [MediaWiki:Common.js]]の要約欄でエンターキーを押した際に投稿されないようにする機能を解除
 */
 
window.summaryEnterRejectDisable = true;

MediaWiki:Gadget-SummaryEnterPreview.js

/*
 * 要約欄でエンターキーを押した際にプレビューする
 */
 
// [[MediaWiki:Common.js]]の要約欄でエンターキーを押した際に投稿されないようにする機能を解除
window.summaryEnterRejectDisable = true;
 
// 本体
jQuery( document ).ready( function( $ )
{
  // キーが押されたとき
  $( "#wpSummary" ).keypress( function( e )
  {
    // エンターキーならば
    if ( e.keyCode == 13 )
    {
      // プレビューを実行
      $( "#wpPreview" ).click();
      e.preventDefault();
    }
  });
 
  // アクセシビリティを考慮
  $( "#wpSave" ).css( "font-weight" , "normal" );
  $( "#wpPreview" ).css( "font-weight" , "bold" );
});

いま考えると、MediaWiki:Gadget-SummaryEnterSave.jsはデフォルトの動作と表示にしているだけなので、必ずしも保存をしているわけではなく、その名前とMediaWiki:Gadget-SummaryEnterSaveの説明に疑問がありますが、以前からそうで、いままでその点で問題視する指摘があったことはなく(たぶん)、現在進行中の不具合対応としては比較的瑣末な話なのでそのあたりの検討は見送って構わないと思います。--mizusumashi(みずすまし) 2011年2月21日 (月) 18:21 (UTC)--一部修正:2011年2月22日 (火) 12:23 (UTC)--一部修正:2011年2月23日 (水) 12:06 (UTC)

賛成 おっしゃるような名前の問題あるいは他にもいろいろと気にしたら気になるところありますが、とりあえずバグ回避のための手段としてこのコードに置き換えることに賛成します。--青子守歌会話/履歴 2011年2月22日 (火) 14:07 (UTC)
コメント さっき気づいたんですが、summaryEnterRejectが有効だとライブプレビューが使えなくなってるようです。新しいコードでも変わりません。前からこんな仕様でしたっけ。--Marine-Blue [ 会話 履歴 電信 ] 2011年2月22日 (火) 15:17 (UTC)
コメント 「使えない」というとちょっと違って、正確には「n回目のプレビューまで動かない」のはずです(何回かプレビューしてしまうと次からは動くはず)。以前に調べた時は、プレビューボタンのイベントハンドラの問題か何かで動かなかった覚えがあります。まぁ、ライブプレビューは実験機能なので、とりあえず対応は後で問題ないと思います。--青子守歌会話/履歴 2011年2月22日 (火) 15:29 (UTC)
コメント ざっと確認した範囲では、今回の原因と根は同じだと思われます。今回、影響を受けるのは、新しい節を追加する際には編集用の form 要素の内部全てですが、通常編集時は wpSummary の親である div.editOptions までです。プレビューボタンは、この div.editOptions の子孫にあたるため、ライブプレビューに問題が出たものと推測します。よって、このまま変更を適用し様子を見たいと思います。--Frozen-mikan 2011年2月22日 (火) 15:54 (UTC)
コメント Marine-Blueさんがおっしゃっていることとは別件なのかもと思いますが、2011年2月21日18:21の MediaWiki:Gadget-SummaryEnterPreview.js を有効にしていても、同時にライブプレビューを有効にした場合、要約記入欄でエンターキーを押すと投稿されてしまう現象を確認しました。これはMediaWiki:Gadget-SummaryEnterPreview.jsにpreventDefault()を入れることで回避できます(上のコードは修正済み)。--mizusumashi(みずすまし) 2011年2月23日 (水) 12:06 (UTC)

上記のコードで特に問題なさそうですし、1日ほど待って明日ぐらいにはWP:AN/PEに依頼を出したいと思います。 その後の細かな修正は引き続きやっていきましょう。--青子守歌会話/履歴 2011年2月24日 (木) 14:20 (UTC)

報告 依頼してきました。--青子守歌会話/履歴 2011年2月26日 (土) 14:45 (UTC)
報告 2011年3月8日 (火) 18:36 (UTC) の版(差分)で修正されたことを確認。動作確認は、新しい節の追加、ガジェット(単独・組み合わせ)、ライブプレビューにて。環境はXP+Chrome9。--Frozen-mikan 2011年3月10日 (木) 00:00 (UTC)

Template‐ノート:Link FA にて、Template:Link FA および Template:Link GA を改変する提案を行なっています。それにともない、この MediaWiki:Common.js 側のコードの更新も予定しておりますので、お知らせいたします。--fryed-peach [会話] 2011年10月11日 (火) 15:45 (UTC)

Template‐ノート:Link FA での議論に基づき、以下の変更を提案します。

現在の、

/*
 * LinkFA: サイドバーにおける他言語版の秀逸な記事へのリンクに星の画像を付ける処理
 * [[Template:Link FA]]も参照
 */

から

addOnloadHook(LinkGA);

までの部分を 利用者:Fryed-peach/FA.js の内容で置き換えます。変更点は以下です。

  • MediaWiki の更新への対応
  • FA と GA の処理を1つの関数にまとめる
  • 今まで対応していなかった、ノスタルジアやケルンブルーなどのスキンに対応
  • 細部の最適化

1週間ほど待って編集依頼にだそうと思います。--fryed-peach [会話] 2011年10月20日 (木) 15:19 (UTC)

予告より少し遅れましたが、編集依頼に出しました。--fryed-peach [会話] 2011年10月30日 (日) 17:47 (UTC)
報告 反映されました。--fryed-peach [会話] 2011年11月7日 (月) 15:41 (UTC)


addOnloadHook

addOnloadHook は、7カ所あります。

// 作業例
addOnloadHook( myFunction );
// これを以下のように置き換え
$( myFunction );

これは簡単な置換えです。厳密には関数が実行されるタイミングが早くなります。ページロード完了時からDOM構築完了時まで前倒しになります。--Frozen-mikan会話2012年4月3日 (火) 13:02 (UTC)

3週間以上意見が付かない状況ですが、簡単な置き換えであるので、変更しようと思います。時期は明日、明後日あたりを考えています。--Frozen-mikan会話2012年4月27日 (金) 08:56 (UTC)
賛成 気づいてなかったですが、賛成します。個人的にはmyFunctionそのもの要らずに匿名関数で良い気がしますが、まぁそこは置いとく感じで。--青子守歌会話/履歴 2012年4月27日 (金) 10:21 (UTC)
報告 先ほど、変更しました[3]。問題が有れば差し戻して下さい。--Frozen-mikan会話2012年4月29日 (日) 07:59 (UTC)

他言語のGAアイコンがおかしい

ここで指摘するべきことかわからないのですが、他言語版のGAを示すアイコンの表示が二重になっているように思われます。Firefox 14とInternet Explorer 9で同様の現象が起きています。まったく同様のテンプレートを利用しているはずのFAでは同じ問題が起きていないので、なぜこういう現象がおきるのか理解できていません。以前からこういう現象が起きていたわけではなかったように思うのですが、何かわかる方はいらっしゃいませんでしょうか? ナウルとかを見ていただくと現象が見られると思います。--Tam0031会話2012年8月30日 (木) 17:15 (UTC)

コメント アイコンが二重に表示される問題を Chrome でも確認しました。
問題の原因はCSSにあるようです。Vector.cssでは、Common.cssで指定されているFA/GAアイコンを表示させないため、その部分を上書きしています。
2010年7月にGAの分を追加した際 [4]、FAでは #mw-panel となっている部分を、GAでは #panel としています。ただ、当時は問題が起きていない上、折りたたみ可能な場合に限定していることから、現在とは構造が違っていたのかもしれません。--Frozen-mikan会話2012年8月30日 (木) 19:03 (UTC)

報告 以上のような問題点を踏まえ、MediaWiki:Vector.css を修正しました[5]。--Frozen-mikan会話2012年8月30日 (木) 19:03 (UTC)

早々の対応、ありがとうございました。--Tam0031会話2012年8月31日 (金) 14:45 (UTC)

wgAjaxWatch

{{editprotected}}

    if(! messages[wgUserLanguage]['watchTitle'] && wgAjaxWatch && wgAjaxWatch['watchMsg']){
        messages[wgUserLanguage]['watchTitle'] = wgAjaxWatch['watchMsg'].toLowerCase();
    }

The wgAjaxWatch variable is deprecated now (see mw:ResourceLoader/JavaScript Deprecations#ajaxwatch.js) and has been removed in current MediaWiki. There's no replacement so please just remove these lines and let it fall back to English. Liangent会話2013年4月17日 (水) 08:01 (UTC)

チェック Thank you for your report. Removed this block. --Frozen-mikan会話2013年4月17日 (水) 11:21 (UTC)
コメント wgAjaxWatch という変数が既に定義されていないため、利用言語によっては、コンソールにエラーが表示されていました。このスクリプトによって補われていた用語は英語で表示されているはずです。よって除去対応としました。--Frozen-mikan会話2013年4月17日 (水) 11:21 (UTC)

mw.loader.loadのローカル版(document.writeの呼び出し対策など)

Wikipedia:バグの報告#ページが真っ白になることがある (MediaWiki 1.17)にあるように、1.17ではdocument.writeが不具合を起こす可能性があるとして非推奨になりました。

しかし、document.writeは、大昔にスクリプトやスタイルシートの読み込みとして、利用者スクリプトで広く使われたこともあり、依然として多くの利用者スクリプト中に紛れ込んでいます。

スクリプトとスタイルシートを読み込む手法として、代わりに推奨されているのが、mw.loader.loadメソッドですが、これは(第一)引数がURLではなくてはならず、ローカルのスクリプトやスタイルシートを呼び出すのには少々面倒です。 一方、従来からある方法としてはimportScriptが第一引数にページ名を指定できますが、こちらもmw.loader.loadへの移行を推奨されているものです。

ということで、主にdocument.writeからの移行促進(と、あとは簡便さ)のために、mw.loader.loadを簡単に呼び出せるヘルパーを組み込むことを提案します。内容としては

// ローカルのスクリプトを読み込む
//  pagename: 呼び出すスクリプトのページ名
//  使用例:mw.loader.loadScript("利用者:ウィキ助/example.js");
mw.loader.loadScript = function(pagename) 
{
	// "サーバー + スクリプト + action=raw&ctype=text/javascript&title=pagename"をスクリプト呼び出し
	mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScript") + "?action=raw&ctype=text/javascript&title=" + mw.util.wikiUrlencode(pagename), "text/javascript");
}

// ローカルのスタイルシートを読み込む
//  pagename: 呼び出すスタイルシートのページ名
//  使用例:mw.loader.loadStyleSheet("利用者:ウィキ助/example.css");
mw.loader.loadStyleSheet = function(pagename) 
{
	// サーバー + スクリプト) + action=raw&ctype=text/javascript&title=pagename"をスタイルシート呼び出し
	mw.loader.load(mw.config.get("wgServer") + mw.config.get("wgScript") + "?action=raw&ctype=text/css&title=" + mw.util.wikiUrlencode(pagename), "text/css");
}

もしかするとこの先、ライブラリとして追加されるかもしれませんが(c.f. bugzilla:25845)、少なくともそれまでの間はあった方が良いと思います。

問題はメソッド名で、案としては

  • mw.loaderにloadScript/loadStyleSheetを新しく追加する(先述の例はそのような感じ)
  • グローバルにloadScript/loadStyleSheetを新しく追加する
  • 既存のimportScriptやimportStyleSheetに上書きしてしまう

の3つがあると思います。

ヘルパーを追加することの賛否およびメソッド名をどうするか、ご意見よろしくお願いします。--青子守歌会話/履歴 2011年2月17日 (木) 17:53 (UTC)

コメント まず、ヘルパーの追加はしたいところですが、名称について。3つ目の場合は、現在すでにimportScriptを使っている人もmw.loader.load機能を使えるようになるという長所はあるものの、既存のものを上書きする(名前を衝突させる)のは、思いがけない不具合を引き起こす可能性もあるので、個人的にはあまり推したくはないです。となると1か2ですが、前者は既存のライブラリを独自拡張することになる、後者は(せっかくmwにまとめられてきれいになった)グローバルに新しいグローバル関数を追加することになり、保守性あるいは名前の衝突回避という点であまりよろしくない、という欠点をそれぞれ抱えていると思います。なので、あとは好み?の問題にもなってくるかもしれませんが、私自身はどちらかというと1でいいのではないかなと考えています。で、もし2にするぐらいなら、jawpのような新しい名前空間(クラス)を作って、そこに追加した方が設計的にはよいように思いました。--青子守歌会話/履歴 2011年2月17日 (木) 17:53 (UTC)
コメント 青子守歌さんが提案している jawp のような新しい名前空間を利用することに賛成します。mw や mediawiki は、MediaWikiが公式的に提供してるライブラリで使われており、拡張を推奨するような記述が無い限り、それらの名前を使うことは避けるべきです。また、MediaWiki1.17 では importScript, importScriptURI, importStylesheet, importStylesheetURI の4つの関数が非推奨になっており、これらのグローバル名前空間にある関数を上書きすることは避けたほうが良いと思います。しかし、これらの関数と同等の名前と機能を持つ関数を mw.loader.load 対応の関数として jawp のような新しい名前空間に作成することは許容されるのではないかと思います。この方法であれば、最小限の変更で以前と同様の機能を利用することができるようになります。--Frozen-mikan 2011年3月16日 (水) 15:22 (UTC) 紛らわしい部分を修正。--Frozen-mikan 2011年3月16日 (水) 16:18 (UTC)
コメント いろいろ考え、当初は「mw.loaderにloadScript/loadStyleSheetを新しく追加する」で良いのではないかと考えていましたが、今は「jawpのような新しい名前空間(クラス)を作って、そこに追加した方が設計的にはよい」という案に賛成します。jawpのメソッド名としては、たぶんFrozen-mikanさんと異なる意見ですが、「jawp.loadScript」「jawp.loadStyleSheet」といったような名前がよいのではないかと思います。理由としては、従来の「importScript」「importScriptURI」「importStylesheet」「importStylesheetURI」と同じ実装のものは提供するべきではなく、実装としてはmw.loader.loadのラッパーにするべきであり、その場合、まったく同じ機能となることを保証するのは難しそうに思うからです(実装例)。--mizusumashi(みずすまし) 2011年3月18日 (金) 12:02 (UTC)

「Complete list」

以下の、miyaさんによる発言(提案)はTemplate‐ノート:メインページ言語間リンクからコピーしたものです。--氷鷺 2011年11月26日 (土) 10:57 (UTC)

ところで英語版にはもう一つ、「Complete list」というリンクがあって en:List of Wikipediasに飛べます。読者にとってかなり便利だと思います。追加しませんか?--miya 2011年11月25日 (金) 15:25 (UTC)

賛成 賛成ですが、実際には Common.js を編集することになりますので、こちらのノートに場所を移しましょう。で、具体的な編集内容は以下のようなものを追加することになります。
if (wgPageName == 'メインページ') {
    $(function () {
        mw.util.addPortletLink('p-lang', '//ja.wikipedia.org/wiki/Wikipedia:%E5%85%A8%E8%A8%80%E8%AA%9E%E7%89%88%E3%81%AE%E7%B5%B1%E8%A8%88',
            '全ての言語', 'interwiki-completelist', '全ての言語');
    });
}
リンク先はとりあえずWikipedia:全言語版の統計にしていますが、重いですし、言語系統的な一覧でも新たに作った方が良いかもしれません。--氷鷺 2011年11月26日 (土) 10:57 (UTC)
賛成 先日もタイ言語版へのリンクが無いとの指摘が有ったばかりです。リストが部分的なものであることを示すためにも、このような補足があって良いと思います。また、ソースについて、以下の案を提示します。
if (mw.config.get('wgPageName') == 'メインページ') {
    $(function () {
        var listPageName = 'Wikipedia:全言語版の統計';
        mw.util.addPortletLink('p-lang', mw.util.wikiGetlink(listPageName),
            '全ての言語', 'interwiki-completelist', listPageName);
    });
}
変更内容は以下の通り。MediaWiki1.17以降で推奨されている書き方にしました[6]。また、ツールチップはリンク先ページのタイトルにしました。--Frozen-mikan 2011年11月26日 (土) 13:02 (UTC)
提案 言語系統ごとの一覧「Wikipedia:ウィキペディアの一覧」を作成しました。リンク先はこちらでどうでしょうか。--氷鷺 2011年12月4日 (日) 09:13 (UTC)
素晴らしいページです。リンク先を変更することに賛成します。--Frozen-mikan会話2012年4月3日 (火) 14:46 (UTC)
実際に試してみたのですが、クラシック(standard)、ノスタルジア、ケルンブルーの3つのスキンでは、言語間リンクとは別の所に「全ての言語」が挿入されてしまいます。場所が違うと不自然ですし、かといってそれらのスキンでは利用できそうなクラスやIDもなく(少なくともスマートな方法では)対応しづらいように思います。この3つのスキンを対象外とするか、それとも別に対応を考えましょうか。さほど利用があるとは思えないですし、ベクターやモノブックで動作するならその辺だけでも良いような気がしますが。--氷鷺 2011年12月5日 (月) 15:40 (UTC)
提案 3つのスキンに対応したスクリプトを作ってみました。2ヶ所に追加する都合上、id は省略しました。
/* 言語間リンクの最後に、リンク「全ての言語」を追加する。 */
if (mw.config.get('wgPageName') == 'メインページ') jQuery(function ($) {
    var listPageName = 'Wikipedia:ウィキペディアの一覧';
    var href = mw.util.wikiGetlink(listPageName);
    var text = '全ての言語';
    switch (mw.config.get('skin')) {
    case 'standard':
    case 'cologneblue':
    case 'nostalgia':
        var $link = $('<a>')
            .attr({'href': href, 'title': listPageName}).text(text);
        var $top = $('#topbar').find('a.external').last();
        var $bottom = $('#footer').find('a.external').last();
        if ($top.length == 0) return;
        var separator = $top.get(0).previousSibling.data;
        $top.add($bottom).after($link.clone()).after(separator);
        break;
    default: 
        mw.util.addPortletLink('p-lang', href,
            text, 'interwiki-completelist', listPageName);
        break;
    }
});
以上。(過剰対応な気もしますが。)--Frozen-mikan会話2012年4月3日 (火) 14:46 (UTC)

廃止される予定の関数を更新する

MediaWiki1.17 で ResourceLoader(RL) が導入されたことに伴い、新しいライブラリ群が登場しました。この際、以前からあった関数群が一斉に廃止される予定になりました。移行案内は[7] にあります。ここに書かれている中で、簡単な置換えの部分から変更したいと思っています。今回は1件だけですが、少しずつでも変更して行ったほうが良いと思っています。ご意見をお待ちしています。--Frozen-mikan会話2012年4月3日 (火) 13:02 (UTC)

関数群の隠蔽について

現在、このCommon.jsではほとんどの関数と変数が、windowオブジェクトに紐付けされ公開された状態になっています。この状態を改善するため、mw.loader.using('mediawiki.util', function(){}); による明示的な遅延処理と、そのコールバック関数による隠蔽を行ないたいと思います。遅延処理の方は不要かもしれませんが、ライブラリに依存する場合の安全な書き方のお披露目行為も兼ねています。隠蔽するに際し、グローバルとして公開し続けるものについては明示する必要があります。以下の関数を公開する予定です。

  • getURLParamValue (mw.util.getParamValue に置き換え可能)
  • hasClass (jQuery の .hasClass() やクラスセレクタで置き換え可能)
  • collapseTable
  • toggleNavigationBar

また、以下の変数は利用者によって変更される可能性があるため、明示的に公開する必要があります。

  • disableTitleChecker (window. を付ける)
  • disableRealTitle (window. を付ける)

以下の変数は存在しない可能性も考慮して書かれているため問題ありません。

  • moveEditsectionDisable (typeof)
  • expandEditsectionDisable (typeof)
  • summaryEnterRejectDisable (typeof)
  • disableUsernameReplace (window.)

以上です。ご意見をお待ちしております。--Frozen-mikan会話2012年4月6日 (金) 18:02 (UTC)

MediaWiki:EnhancedCollapsibleElements.js の読み込み条件について

現在、MediaWiki:EnhancedCollapsibleElements.js (ECE) は全てのページで読み込まれています。これを条件付きで読み込む形に変更してはどうかと思っています。このスクリプトはDOM構築時に使われるかどうかを判別できるため、使われない場合は読み込みを行わない方が閲覧者にとってメリットになると思います。ただし、使われる場合に折りたたみが開始されるタイミングが少し遅くなるデメリットはあります。皆様のご意見はいかがでしょうか。--Frozen-mikan会話2012年4月6日 (金) 19:01 (UTC)

節単位編集リンクを左右に移動する機能の廃止

meta:Change to section edit linksプロジェクト‐ノート:ウィキ技術部#Common.jsの修正が必要そうです(modifyEditsection)への対応の一環として、節単位編集リンクを左右に移動する機能はなくしたほうがいいのではないでしょうか? 移動機能は、過去のMediaWikiにおいて節の名前の左側に出ていた節単位編集リンクを右側に移動するものでしたが、現在は何もしなくても節の名前の直後にリンクが置かれるので、この移動は不要になったはずです。なお、冒頭部分の編集リンクを追加する機能と節単位編集リンクに「閲覧」「ウォッチ」等を追加する機能は、これまでどおりでいいと思います。 --whym会話2013年5月11日 (土) 14:17 (UTC)

以下は廃止の背景と方法の説明です。廃止により大多数の人は特に影響を受けませんが、これまで移動が無効になる(つまり節編集リンクを左側におく)よう設定(MediaWiki:Gadget-MoveEditsectionDisable)していた人は影響を受けます。後者の人数は非常に少なかったようです。ToolServer でガジェットの利用者数を調べてみたところ、MediaWiki:Gadget-MoveEditsectionDisableを有効にしていたアカウントの数は 21 だけでした(比較対象として、Help:ナビゲーション・ポップアップは2000以上です)。利用者ごとの設定に記入している人もいないようです。左側に移動させるには新たな実装が必要になりますし、いずれにしても利用者数の実態からみて全利用者が全ページでロードする Common.js に記載すべき機能ではない気がします。要望があった場合に新しいガジェットとして作成するのがいいかもしれません。廃止する場合、Common.js から該当部分を除去するのに加えて、MediaWiki:Gadget-MoveEditsectionDisableスクリプト を削除することになります。おそらく MediaWiki:Gadget-MoveEditsectionAntiJumpスタイルシートも不要になるかと思います。 --whym会話2013年5月11日 (土) 14:17 (UTC)
新CSSクラス名(mw-editsection)等への対応と上記の廃止を行ったソースの例として利用者:Whym/editsectionenhanced.jsを作ってみました。 --whym会話2013年5月11日 (土) 14:17 (UTC)

Give search results even when page doesn't exist

Screenshot of the Earth test search, with this script adding links to Wikidata, Reasonator, Commons, and Wikipedia.

Hello, I propose to enable the tool created by Magnus Manske (creator of MediaWiki) to provide results from other languages and Commons (via Wikidata) when a page doesn't exist here: links are added to Special:Search and noarticletext. This helps to encourage translation and to make readers use your wiki more, because they can be sure to find something even if it's not local (rather than searching directly on the biggest wiki). The Italian and Polish Wikipedias, among others already enabled it by default.
Examples: [8] [9] [10]. More information: Magnus blog.
How to: just add the following line at the end of Common.js.

// Results from Wikidata
// [[File:Wdsearch_script_screenshot.png]]
if ( mw.config.get( 'wgCanonicalSpecialPageName' ) === 'Search' ||  ( mw.config.get( 'wgArticleId' ) === 0 && mw.config.get( 'wgCanonicalSpecialPageName' ) === false ) ) {
	importScriptURI("//en.wikipedia.org/w/index.php?title=MediaWiki:Wdsearch.js&action=raw&ctype=text/javascript");
}
--Nemo 2013年12月12日 (木) 08:56 (UTC) (comments, translations and last instructions)

他言語版の秀逸/良質記事へのリンク装飾

他言語版の秀逸な記事へのリンクに星を付ける処理ですが、言語間リンク部分のクラス名が変更された影響で動かなくなっています。ドイツ語版を参考に修正したコードが 利用者:Fryed-peach/FA.js にありますので、これを反映させることを提案します。--fryed-peach [会話] 2013年12月20日 (金) 05:39 (UTC)

報告 ご提案の内、最低限必要な部分は修正しました[11]。--Frozen-mikan会話2013年12月20日 (金) 09:07 (UTC)

未定義値の可能性があるグローバル変数に対する簡易処置の提案

しばらく前から「Wikipedia:バグの報告#古いブラウザでの動作確認報告」で報告がありますように、ブラウザによって jQuery や mw を未定義値 (undefined) のままにする分岐処理が行われています。しかし、既存のスクリプトは、これらの値が必ず存在するものとして書かれており、未定義値のままになっているブラウザではエラーが発生しています。よって、その簡易的な対策として、大雑把では有りますが、以下のスクリプトを差し込みたいと思います。同時に関数 toggleNavigationBar が暗黙のグローバル関数として使われていますので、その部分を修正したいと思います。その他、グローバル変数として見えていたものが隠れますので、他のスクリプト(ガジェットを含む)で何らかの問題が発生する可能性は否定できません。

typeof mw != 'undefined' && (function() {
/* mw に依存する部分の始まり */

/* 既存のスクリプト (この行は追加しません) */

/* mw に依存する部分の終わり */
}());
(解説)前半の typeof mw != 'undefined' の部分は window.mw !== undefined とほぼ同じ動作になります。この部分が mw が未定義値だった場合のエラーを回避する本体です。後半の無名関数 (function() {}()); は、内部に既存のスクリプトを配置します。関数にまとめることで、mw が未定義値だった場合、既存のスクリプトを実行させません。
// 修正前
  function toggleNavigationBar(indexNavigationBar)
// 修正後
  window.toggleNavigationBar = function(indexNavigationBar)

問題がないようでしたら、1週間後、日本時間の19日夜以降に反映する予定です。ご意見やお気づきの点などがありましたらお知らせください。--Frozen-mikan会話2014年8月12日 (火) 03:03 (UTC)

コメント 無名関数の中に封じ込めるスクリプトの範囲をどのようにお考えなのか確認しておきたいところです。たとえば記事名チェッカは処理内でwgで始まるグルーバル変数を使用していますが、disableTitleCheckerTitleChecker_excludeというグローバル変数を定義しているのでこれは範囲外に出す必要があるでしょう。ところで英語版を見たのですが、特に対策はしてないようですね。--Wolf359borg会話2014年8月12日 (火) 11:56 (UTC)
「無名関数の中に封じ込めるスクリプトの範囲」については、既存の全てを入れる予定です。「mw に依存」とは言うものの、同様に $ (jQuery) 変数に依存する部分も回避しなければならないので、全体を囲っておきたいのです。「varで宣言すればグローバル変数ではない」と保証されるようになるメリットも有ります。また、ご指摘にある2つのグローバル変数(計7箇所)については、var を除去し、window. を前置することでグローバル変数を維持しようと思いますが、いかがでしょうか。--Frozen-mikan会話2014年8月12日 (火) 12:25 (UTC)
基本的に全体を囲って、必要なグルーバル変数については維持するように配慮ということですね。了解です。--Wolf359borg会話2014年8月12日 (火) 12:38 (UTC)

報告 提案の通り、先ほど Common.js を編集しました(差分)。議論の中では「グローバル変数」を選んで残す予定でしたが、全てのグローバル変数(関数)を残すようにしました。提案に無い部分としては、関数宣言を関数式に変更した箇所は、式の最後にセミコロンを追加しています。出来る限りエラーが起きないように編集しましたが、何か有りましたらお知らせ頂けるようお願い申し上げます。--Frozen-mikan会話2014年8月19日 (火) 13:33 (UTC)

報告 Vector.js についても同様の編集を行いました(差分)。--Frozen-mikan会話2014年8月19日 (火) 14:04 (UTC)
Frozen-mikanさん:mw:Manual:Coding_conventions/JavaScript#Closureにはクロージャ引数((function(mw, $){/*本体*/}(mediaWiki, jQuery)))を利用するやりかたが書かれています。未定義の場合に何も実行しないようにするという効果は同様だと思いますので、こちらのやりかたのほうが一貫性の点で好ましいかもしれません(同様の方法で書かれたスクリプトはc:MediaWiki:Gadget-AjaxQuickDelete.jsなど、他ウィキでしばしば見かけます)。それほど大きな違いはなさそうですので、強く提案はしませんが。 --whym会話2014年8月23日 (土) 12:33 (UTC)
ご指摘の点、誤読があるかもしれませんが、以下の様に考えています。ご指摘のコード自体には「未定義の場合に何も実行しない」や「未定義エラーを回避して後続のスクリプトの実行を妨げない」という効果は無いように見えます。恐らく、mediaWiki や jQuery に比べて短い名称の mw や $ が、事前に実行されたスクリプトによって上書きされている可能性を考えているように思います。もちろん、無名関数で囲みスコープを作る事は必須にして良いと思いますし、ご指摘の方法は、防御的プログラミングとして有用であると思います。--Frozen-mikan会話2014年8月23日 (土) 13:29 (UTC)
補足します。引数として値を渡すタイミングに "mediaWiki" が未定義であればそこでエラーとなり関数の中身は実行されない、というように上記のコードを読んでいました(この点ですでに誤解がありましたらこの提案はなかったこととしてご容赦ください)。このセクションで提起された問題に関して、実質的に害があるのは未定義エラーが出る箇所までコードが中途半端に実行されることだと思っていたので、何も実行しないのであれば未定義エラーはでてもよい(むしろ十分に対応していない環境を使っている証拠なので、でたほうが注意喚起になる)のでは、というのが私の考えでした。--whym会話2014年8月23日 (土) 13:48 (UTC)
事の発端、Wikipedia:バグの報告#古いブラウザでの動作確認報告の報告者です。JavaScriptのエラーが注意喚起になるのはそれなりの知識がある人だけで、一般の利用者にはなぜか読み込みスタータスがreadyにならないおかしな状態に過ぎず対処不能です。でも英語版では特に対処されてなくて普通にエラー出てしまうんですよね。対応していない環境への注意喚起に関しては、もうIE6以前などisCompatible()で未対応判定される環境は非推奨であるとはっきりHelp:MediaWikiに適応するブラウザに書いておくべきだと思うのです。関連してこういう提案もさせて頂いています。--Wolf359borg会話2014年8月23日 (土) 14:32 (UTC)
なるほど。未定義であれば、エラーが発生し無名関数内部は実行されない、ということですか。個人的には可能な限りエラーを出すべきではないと思っており、現状では同意しがたい部分です。--Frozen-mikan会話2014年8月23日 (土) 16:02 (UTC)

報告 別の話をしていた所、気になり、IE11によるIE5相当で実行しなおしてみたら、どうやらスクリプトを読み込まない形に切り替え(一箇所だけ mw の未定義エラーが起きていますが)、Common.js なども読み込まれていないようです。ログインしていても、ガジェットの方は、[ResourceLoader|dependencies=mediawiki.util] など英語版[12]のように依存関係が書いてあれば、読み込まれずに問題が起きないようです。他の方にもご確認いただけるとありがたいです。--Frozen-mikan会話2014年8月23日 (土) 16:02 (UTC)

あらら、今確認(IE11およびIETesterでIE5/IE6エミュレーション)してみたらエラーが出ないように対策されてますね。なお、IE11でmwの未定義エラーが起きたというのは、たぶんドキュメントモード5だけ設定してユーザーエージェント文字列が規定のままだったんじゃないでしょうか。--Wolf359borg会話2014年8月23日 (土) 23:07 (UTC)
ご確認いただき、ありがとうございます。一度出る mw の未定義エラーに関しては、仰るとおりユーザーエージェント文字列の設定が規定のままでした。ガジェットの方は「MediaWiki‐ノート:Gadgets-definition」で作業管理し、対処したいと思います。--Frozen-mikan会話2014年8月24日 (日) 03:48 (UTC)
報告 ガジェットについて「MediaWiki‐ノート:Gadgets-definition#ResourceLoader への依存を明示する提案」を提出しました。こちらの方もよろしくお願いします。--Frozen-mikan会話2014年8月24日 (日) 07:49 (UTC)

Announced JavaScript change for badges implementation

Hi! I want to let you know that in near future badges will be deployed on Wikidata and the Wikipedias. They help us with displaying the good and featured article icons next to the sitelinks and will replace the javascript hack which is used at the moment together with the Link GA and Link FA templates. To avoid an overlap where the current system and the new feature conflict, I will add a minor fix to your Common.js which adds the class names to the interwiki links. This is part of my task as a global edit interface editor for the Wikidata team. Thanks, Bene*会話2014年8月18日 (月) 20:27 (UTC)

wgから始まるグローバル変数について

しばらく前から確認している現象ですが、廃止が予定されている「wgから始まるグローバル変数」を参照すると、コンソールに警告 (console.warn) が出るようになっています。正式に廃止される時期は不明ですが、早い内に対処しておいた方が良いと思います。対処法については、変数表記そのものを置き換えるのではなく、使用されているグローバル変数と同名のローカル変数に mw.config.get を用いて事前に値を用意する形を考えています(wgScript であれば、var wgScript = mw.config.get("wgScript"); の1行を事前に挿入)。ご意見をお待ちしております。--Frozen-mikan会話2015年3月14日 (土) 15:47 (UTC)

  • 賛成 たまたまコンソールを見ていたらwarningだらけになっていたので気づきましたが、これらの変数をmw.config経由で呼び出してローカルで持つ、という対応で問題ないと考えます(動的に変わるものでもないですし)。--Jkr2255 2015年4月6日 (月) 12:17 (UTC)

コメント しばらく間が空きましたが問題点のご指摘が無かったので、数日中に上記の通りに変更を行う予定です。なお、この期間中に importScript なども同様の状態になりました。そちらの方は別途変更提案をしようと思っています。--Frozen-mikan会話2015年4月27日 (月) 07:15 (UTC)

報告 編集しました[13]。直ぐには反映されないようですが、ガジェット等を含まない状態で importScript の警告が何件か出るだけになるはずです。なお、この編集による不具合あれば、「Wikipedia:管理者伝言板/保護ページ編集」に差し戻しの依頼を行って下さい。よろしくお願いします。--Frozen-mikan会話2015年4月29日 (水) 04:17 (UTC)
報告 類似のグローバル変数である skin をローカル化しました(差分)。--Frozen-mikan会話2016年4月14日 (木) 16:00 (UTC)

秀逸な記事への言語間リンクに付く星アイコン

現在ではこの処理はウィキデータのバッジを利用するようになっているので、この関数は除去して問題ありません。--fryed-peach会話2016年9月30日 (金) 13:31 (UTC)

昔 {{Link FA}} とかのテンプレートと一緒に使われてたやつですよね。廃止になっていたのを知りませんでした。情報ありがとうございます、処理を除去しました。--cpro会話2016年11月8日 (火) 01:12 (UTC)

WithJS withCSSの対象に利用者名前空間を含める提案

提案 現状、MediaWiki名前空間のみが対象になっているWithJS withCSSを、利用者名前空間も対象とするように変更することを提案します。理由は、スクリプト/CSSの提案をしやすくするためです。カスタムJSの体験も可能になります。

1週間ほど意見を募集し、反対がなければ、変更作業を行いたいと思います。よろしくお願いします。--Waiesu会話2016年11月7日 (月) 05:05 (UTC)

反対 提案やカスタムJS体験の容易化という主旨には共感するんですが、悪意あるスクリプトを容易に実行させられるため、残念ながら無理だと思います。--cpro会話2016年11月7日 (月) 05:28 (UTC)
返信 (Cproさん宛) ご意見ありがとうございます。利用者名前空間の場合は、confirmでその旨を警告し、自己責任でOKを押した場合のみスクリプトを読み込ませるというのはどうでしょうか。--Waiesu会話2016年11月7日 (月) 05:51 (UTC)
コメント 自己責任としてしまうと、利用前にロード対象のカスタムJSの内容を見て悪意あるコードが含まれていないことを各自確認するところまで利用者に責任を負わせることにならないでしょうか。やはり積極的な賛成はできないです。
可能性があるとすれば、たとえば各自の利用者サブページに[[利用者:Cpro/withjsoptin.js]]のようなオプトインページ(.jsは改竄防止のため)を作らせて、そこに名前がある利用者のカスタムJSのみ許可するような仕組みでしょうか。名前がない場合confirmダイアログでOKするとオプトインページの編集画面に飛ぶようにすれば多少は利用者負担も減るかなと。結構大がかりな改造になってしまいますが。--cpro会話2016年11月7日 (月) 07:41 (UTC)
反対 それは誰も幸せにならないと思うのです。自己責任にするなら console から読み込み文を打たせるか、個人用 js / CSS に入れればいいと思うのです。わからない人が下手に触ると碌なことにならない類のものですし。--rxy会話2016年11月7日 (月) 09:44 (UTC)

──────────────────────────────────────────────────────────────────────────────────────────────────── 返信 (cproさん、rxyさん宛) ご意見ありがとうございます。やはりカスタムJSを対象とするには、安全性の面にかなりの配慮をしなくてはならず、難しいようですね。JSについては取り下げます。

さて、CSSについてはどうでしょうか。現在、Template‐ノート:Reflist#列数指定時の列幅に下限を設定する提案においてMediaWiki:Common.cssの変更を含めた提案をしていまして、なにせ影響が大きいですから、より多くの方に体験をしてもらうために、こちらのスクリプトの変更の提案したわけであります。cssについてもご意見お願いします。(上記提案にもご意見をくだされば光栄です。)--Waiesu会話2016年11月7日 (月) 14:34 (UTC)

そういう用途であれば MediaWiki 名前空間にテスト用 CSS / js を置けばいいだけなのでは。不必要にリスクをとってまで現行 js を変更する必要性が全く分かりません。--rxy会話2016年11月7日 (月) 22:09 (UTC)
返信 (rxyさん宛) 今回の件に関して言えば、それで済む話かもしれませんが、この先、MediaWiki名前空間を編集できない方が提案する際の補助になります。cssにはセキュリティ上のリスクもありません。--Waiesu会話2016年11月8日 (火) 09:27 (UTC)
コメント 例えば、MediaWiki名前空間にテスト用JS/CSSを置いて、必要があればそこから管理者/インターフェース編集者が操作を行って、期間限定で一時的に利用者名前空間のJS/CSSをインポートしたほうが良いと思います。利用者名前空間のJS/CSSは基本的に本人しかいじれないので、利用者名前空間のJS/CSSをロードするとしてもリスクは大きく下がるはずです。
とは言え、この対処法を推しているわけではありません。不正目的の申請を誤って許可すれば不特定多数が危険なコードを実行する結果にはなりますので、やはり一定のリスクは伴います。権限申請の類と比較すると、不正申請を誤って許可するリスクは高いと思います。実施を必ずしも推すわけではないが、もし実施するならこれぐらいの手の込んだシステムは必須である、という主旨で捉えていただければ幸いです。--Marine-Bluetalkcontribsmail 2016年11月10日 (木) 08:22 (UTC)
返信 (Marine-Blueさん宛) コメントありがとうございます。JSについて、セキュリティ上の観点から特別な配慮が必要なことは理解しています。CSSに限定すると、特にそういった配慮・対処をせずとも問題は発生しないと考えますが、どうでしょうか。--Waiesu会話2016年11月10日 (木) 14:20 (UTC)

取り下げ 提案について賛同が得られなかったため、取り下げます。代わりにMediaWiki:Common.cssの提案用にMediaWiki:Test/common.cssを作成したことを報告します。 --以上の署名のないコメントは、Waiesu会話投稿記録)さんが 2016年11月18日 (金) 14:46 (UTC) に投稿したものです(whym会話)による付記)。

WikiEditorで挿入されるbig/smallタグの置き換え提案

Wikipedia:井戸端/subj/入力補助における、文字の大きさに関する仕様についてより。WikiEditorの入力補助機能を用いると、HTML5で廃止された<big>...</big>とタグの意味に変更があり文字サイズ変更だけの用途としては非推奨となった<small>...</small>が挿入されるため、mw:Extension:WikiEditor/Toolbar customizationの方法で{{larger|...}}{{smaller|...}}が挿入されるようにしていただけないでしょうか。--126.144.37.127 2017年3月1日 (水) 17:43 (UTC)

extParamの未定義エラー

Wikipedia:秀逸な記事の選考Wikipedia:良質な記事/良質な記事の選考で、以下のJavascriptのエラーが発生しています。

Uncaught ReferenceError: extParam is not defined

ブラウザのデバッガの内容から推察すると、Common.jsのl.783,790のextParamではないかと推察され、前後のコードから、他の記事を表示している記事のうち、特定の条件を満たす記事でこの問題が発生するのではないかと推察されます。 現在のところ、このエラーでUIの動作不良などは確認できておりませんが、ご修正をお願い致します。 --MawaruNeko会話2017年11月6日 (月) 14:56 (UTC)

コード見直しの過程で改名前の変数名および不要になった処理が残ったままでこれがエラーの原因でした。失礼しました。修正しましたのでご確認ください。--cpro会話2017年11月7日 (火) 00:20 (UTC)
ご対応ありがとうございました。エラーが修正されていることを確認いたしました。--MawaruNeko会話2017年11月7日 (火) 13:40 (UTC)

ユーザースクリプトによる無効化オプションが使えない

ユーザースクリプトでwindow.disableSomeFeature = true;などとしておくとCommon.jsの機能を無効化するオプションを提供しているものがいくつかありますが、ResourceLoaderが導入されてからはロードのタイミングが変わって、Common.js上の$(Func)が実行される時点(DOM構築完了時実行)ではまだユーザースクリプトがロードされておらず(少なくともロードされることが保証されていない)、無意味になっています。

この手の無効化オプションはガジェットがない時代にユーザー側で有効化/無効化を選択できるようにしていた慣習によるもので、ユーザーによる選択が妥当なものであればガジェットで実装するのが本来あるべき状態ですし、選択させる必要がなければオプションは廃止してよさそうに思います。以下、現状をまとめてみます。

機能 内容 対処
TitleChecker 改名時や新規作成時に記事名がWP:NCに沿っているかチェックする機能。特に無効化する意味もなく、無効化オプションは不要か。 チェック サブモジュール化の際にオプション廃止
modifyEditsection 井戸端などでトランスクルードされたサブページへの節編集リンクを拡張する。必ずしも全員に必要なものではなく、ガジェット化が妥当か。 チェック ガジェット化
summaryEnterReject 要約欄でエンターキーを押した際に投稿されないようにする。ガジェットGadget-SummaryEnterSave.jsで無効化できるようにしているので現状でOK?既定で有効なガジェットに変更する方が自然かも(参考: Wikipedia:井戸端/subj/要約記入欄でエンターキーを押したときの動作 チェック ガジェット化
UsernameReplace 投票ページなどで、<span class="insertusername"></span> の中身を利用者名で置き換える。ガジェットから移行した経緯もあり(参考)、特に無効化する意味もなく、無効化オプションは不要か。

ご意見をお寄せください。--cpro会話2017年11月8日 (水) 07:16 (UTC)

自分で言うのもなんですが何の意見を求めてるのかよくわからないので、個別具体にということで、まずはmodifyEditsectionおよびsummaryEnterRejectについてWikipedia:ガジェット/提案にガジェットへの移行を提案しました。--cpro会話2017年11月10日 (金) 01:46 (UTC)
報告 TitleCheckerについては、MediaWiki‐ノート:Common.js/記事名チェッカ#改修およびサブページ分離の予告MediaWiki:Common.js/titleChecker.jsにサブモジュール化したのを機に、無効化オプションを廃止しました。--cpro会話2017年11月15日 (水) 06:18 (UTC)
報告 modifyEditsectionとsummaryEnterRejectのガジェット化を完了しました。--cpro会話2017年11月17日 (金) 08:02 (UTC)

強制プレビューの更新

掲題について、不具合が発生したため MediaWiki‐ノート:Vector.js#強制プレビューの更新 にて改廃の提案をしております。--rxy会話2017年12月8日 (金) 15:37 (UTC)

withJS・withCSS機能の更新(2020年4月)

表題の機能ですが、mw:Snippets/Load JS and CSS by URLにある最新版への更新を提案します。変更点は「importStylesheetとimportScriptからmw.loader.loadへの移行」の1点であり、理由は下記の通り。

特に問題がなければ、1週間後に更新します。--ネイ会話2020年4月17日 (金) 04:00 (UTC)

Dynamic Navigation Barsの更新

Dynamic Navigation BarsはMediaWikiが既定で折り畳み機能を提供していない時代の産物であり、ウィキペディア日本語版では2007年に導入されました。しかし、2011年末のMediaWiki 1.18にてmw-collapsibleクラスが導入されたため、Dynamic Navigation Barsを廃止すべきであると考えます。ただし、mw-collapsibleで表示される折り畳みボタンの表示が未調整のため、現時点ではまだ移行できていません。つきまして、まずはDynamic Navigation Bars側を(英語版から再移入して)更新し、コードを整理してから移行を考えたいと思います。現時点でCommon.jsに出ているWarning 3件が全てDynamic Navigation Bars由来となっているため、リファクタリングの面からも更新すべきと考えます。目立った変更点としてはa.hrefによるリンクからonclickイベントへの移行が挙げられます。特に問題がなければ、1週間後に更新します。--ネイ会話2020年4月25日 (土) 06:12 (UTC)

リファクタリングの提案

下記のリファクタリングを提案します。

  • チェック importScriptからmw.loader.loadに移行:Common.jsにおいて3か所で使用されているimportScriptをmw.loader.loadに移行します。#withJS・withCSS機能の更新(2020年4月)と同じく、mw:ResourceLoader/Migration guide (users)#MediaWiki 1.29の手順によるものです。
  • wgから始まるグローバル変数の除去:2015年に#wgから始まるグローバル変数についてにより追加された変数ですが、Common.jsはできるだけ軽くすべきという視点から、ウィキペディア日本語版における全てのスクリプト(利用者スクリプトを含む)を修正した上でそれらの引数を除去したいと思います。これらの変数を使用している箇所を全てmw.config.getで取得するよう変更する形となります。
  • チェック sourceタグの除去:phab:T237267によると、sourceタグは2009年5月より非推奨とされています。Common.jsでは2007年6月に英語版からの移入という形で追加されたようです(英語版では2007年5月に追加、6月末に除去)。現時点では必要性がなくなったと思われますので、置換ではなくそのまま除去してよいと考えます。

--ネイ会話2020年5月4日 (月) 12:38 (UTC)

  • 1と3は編集しました。
  • 2については、スクリプトを10件ほど編集したところで上記の説明の間違いに気づきましたので、一旦作業を止めています。具体的には、Common.jsにおけるwgから始まるローカル引数は利用者スクリプトで参照できるわけではなく、利用者スクリプトのほうで利用しているのはmw:ResourceLoader/Migration guide (users)#Global wg variablesにて非推奨とされたグローバル引数のほうです。これらのグローバル引数は2011年6月のMediaWiki 1.17より非推奨となっていましたが、phab:T72470により2019年10月から順次除去される予定となっており、ウィキペディア日本語版を含むgroup2のウィキは現時点で今年6月の除去を予定しているようです。つきまして、改めて「ウィキペディア日本語版における全てのスクリプト(利用者スクリプトを含む)において、wgから始まるグローバル変数をmw.config.get経由に変更する」ことを提案いたします。これは、先立って行われた10件ほどの利用者スクリプトの編集の追認も含みます。なお、提案の性質上ボット作業依頼は難しいと考えられるため、手動での作業を予定しています。--ネイ会話2020年5月13日 (水) 08:47 (UTC)
    • コメント Sourceタグはプレビュー時にコードハイライトが出来なかった時代の名残ですね。能動的にハイライトを行わないとプレビュー時に通常のウィキ構文として扱われていました。なので、既に除去されていますが、問題ないです。
    • 非推奨変数はどうも他社のユーザーJSの編集をためらっていたようですね。当時の事情はよく覚えていませんが、インターフェース管理者の権限でユーザーJSのコード置換を行うのは問題ないと思います。というか、そのような運用を意図して他のユーザーJS/CSSの編集権限が与えられているはずです。--Marine-Bluetalkcontribsmail 2020年5月14日 (木) 09:57 (UTC)
  • 合意が成立したものとみなします。ぼちぼち作業を行います。--ネイ会話2020年5月23日 (土) 12:11 (UTC)
Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya