web-dev-qa-db-ja.com

javascript:void();への外部リンクを作成できません。

実際のリンクのないメニュー項目 に投稿を書いているときに、Joomla 3.3.3の奇妙な動作に遭遇しました。

_<a>_にリンクしている_"#"_タグがクリックされたときにページが最上部にスクロールする可能性があること、およびリンクでjavascript:void();を使用する方がよいことを指摘したかった_External URL_メニュー項目のフィールド。 ( この記事 は理由を説明しています。)

以前は自分でこれを行っていましたが、Joomla 3.3.3では、リンクフィールドにjavascript:void();が含まれている場合、保存を拒否することがわかりました。このスクリーンショットを見てください([保存]ボタンを押す前後):

Before and after Save

以前のJoomlaバージョン(3.0.3)でテストしたところ、リンクフィールドでjavascript:void();を引き続き使用できました。

これはJoomlaの新しいバージョンのバグですか、それとも、J3.0.3とJ.3.3.3の間のどこかで、javascriptへのリンクが許可されなくなったと判断されましたか?

7
johanpw

それが実際に機能したのはバグでした(またはより具体的にはセキュリティの問題です)。現在の動作は正しいです。

参照:

外部URLのメニュー項目タイプはjavascript:void()で保存できません

Joomla 3.2でメニュー項目にJavascriptを実行させる方法

6
Valentin Despa

バレンティンの答えへの追加として、 これはjavascriptコードを追加する方法です メニュー項目に:

  • カスタムリンクメニュー項目を作成する
  • 追加 #リンクフィールド
  • ページの他の場所(フッターなど)にJavaScriptを追加して、クリックイベントを処理します。

例:

jQuery(document).ready(function($){   
  $(".menuitemclass").click(function () {
    //your javascript function;     
  });
});
3
johanpw