タグ付けされた質問 「javascript」

Drupalに固有のJavaScriptコードに関する質問に使用してください。

5
動作に関連付けられた関数が2回アタッチされないようにするにはどうすればよいですか?
on一部のチェックボックスに追加する動作があります。 (function($) { Drupal.behaviors.mymodule = { attach: function (context, settings) { $('.skip-line', context).on('change', function(){ // some code if ( confirm(Drupal.t('Apply to all languages?')) ) { // applying... } }); } }; })(jQuery); これは非常にうまく機能しますが、チェックボックスはAJAXロードされた部分にあります。フォームのその部分をリロードした場合、それらをクリックすると確認ポップアップが2回表示されます。これで、関数内で初めて呼び出された場合に関数内をテストできることはわかっていますが、それが要素に追加されるのは1度だけにして、1度だけ呼び出すようにすることをお勧めします。どうやってやるの?
11 javascript 

3
Ajaxの成功後にDrupal.attachBehaviorsをトリガーする方法
リンクをクリックしたときにajaxを介してノードを更新するモジュールがあります。 リンクはトグルです。最初のクリックでノードを値1で更新し、その後のクリックで値0でノードを更新する必要があります。 以下のコードは、ページの読み込み後の最初のクリックでは機能しますが、その後のクリックでは機能しません。クリックするたびにDrupal.attachBehaviorsを呼び出し/トリガーする必要があると思いますが、これを行う方法がわかりません。 モジュール function mymodule_menu() { $items['mypath/%/%/ajax'] = array( 'title' => 'My title', 'page callback' => 'mymodule_ajax_callback', 'page arguments' => array(1,2), 'access arguments' => array('access content'), 'type' => MENU_CALLBACK, ); ... } function mymodule_ajax_callback($id, $status) { //Validation[...] //Node Update using $id as the nid and $status as the field …
10 7  ajax  javascript 

8
#ajaxボタンをクリックしたときにJS確認ポップアップを追加する方法
#ajaxが有効になっている基本的なFAPIボタン入力があり、それは正常に機能していますが、JSを追加しますか?「本当によろしいですか?」コードが実際に実行される前にボタンをクリックすると確認ポップアップが表示されます。FAPIのJSは、何をしようとそれに到達する前にクリックを食べているようなので、その方法はわかりません。 私は次のようにインラインのonclickハンドラーを追加しようとしました: $form['search_filters']['channels']['channel_delete_' . $channel->nid] = array( '#type' => 'button', '#name' => 'channel_delete_' . $channel->nid, '#value' => 'Delete', '#attributes' => array( 'class' => array('confirm'), 'onclick' => "return confirm('Are you sure you want to delete that?')" ), '#button_type' => 'no-submit', '#ajax' => array( 'callback' => 'delete_channel_callback', 'wrapper' => 'channel_container_' . $channel->nid …
10 7  forms  ajax  javascript 

5
条件付きJavaScriptをテーマに追加する方法
IE6-8でCSS3セレクターをエミュレートするためにSelectivizrスクリプトを使用したいと思います。 しかし、テーマに追加するのに苦労しています。これまでに試した: 1)これをhtml.tpl.phpヘッドセクションに強制します。 <!--[if lt IE 9]> <script src="<?php print base_path() . path_to_theme(); ?>/js/selectivizr.js"></script> <![endif]--> しかし、base_path()はD7では何も返さないようです(少なくともhtml.tpl.phpで-多分page.tpl.phpで...)。とにかく、これがDrupalの方法ではないことはわかっています。 2)テーマの.infoファイルに追加: scripts[] = selectivizr.js しかし、それはもちろん無条件です:( 3)私のtemplate.phpでdrupal_add_js()を使用します。 しかし、繰り返しになりますが、条件付きで設定できるかどうかはわかりませんか?
10 7  theming  javascript 

2
Drupalに新しいAjaxされたコンテンツにDrupalの動作を強制する[Drupal.attachBehaviors()のみが正しく機能していない]
私はこのトピックについてdrupal.orgに多くの投稿をしていましたが、残念ながら間違ったコンテキストでした。 Ajaxされたコンテンツが必要なJSとCSSを添付していない(フォーラム) Ajaxされたコンテンツが必要なJSおよびCSSを添付していない(問題) それは問題ではないと思うので、別の方法で試してみます。おそらくこれが解決策になるかもしれません。PHPページ全体をロードしてajaxで特定のdivを抽出しても、正しく機能しませんでした。だから、私はdrupalにコンテンツだけをロードさせて、それをajaxでdivに注入できると思いました。リクエストされたURLで「ajax = 1」を探しているhook_preprocess_pageとhook_preprocess_nodeを使用してクエリを作成し、ページ全体ではなくコンテンツのみを提供しました。そして今、特定のtpl.phpファイルの助けを借りて、理論的には、drupalの出力を$ contentのみに制限することができました。そしてここに問題があります。tpl.phpファイルを元の方法のままにしても、私のアプローチは機能していますが、node-ajax.tpl.phpから「$ content」を削除しています。「正しく動作する」とは、drupalがページ全体をリロードしないことを意味します。しかしもちろんコンテンツではありません。しかし、私はそれを自分自身に説明することはできません。$ content変数で発生するため、生成されたコンテンツのhtmlのみであると思いました。だから私の質問は、drupalの出力をコンテンツだけに制限するにはどうすればよいですか、またはこれを機能させるために間違った手順を実行していますか?これが私が使用しているモジュールとjsファイルです:my_ajax.module: <?php function my_ajax_init() { drupal_add_js(drupal_get_path('module', 'my_ajax') . '/my_ajax.js'); } function my_ajax_preprocess_page(&$vars, $hook) { if (isset($_GET['ajax']) && $_GET['ajax'] == 1) { $vars['template_file'] = 'page-ajax'; } } function my_ajax_preprocess_node(&$vars, $hook) { if (isset($_GET['ajax']) && $_GET['ajax'] == 1) { $vars['template_file'] = 'node-ajax'; } } …
10 7  ajax  javascript 

3
drupalの集約されたJavaScriptを(自動的に)縮小する最良の方法は何ですか?
新しく作成したdrupal 6サイトでGoogle pagespeedを実行すると、次のように報告されます。 Minifying the following JavaScript resources could reduce their size by 15.6KiB (12% reduction). Minifying http://[sites]/sites/default/files/js/js_9f19b87ffb72ca233ea7e45dda2f20f9.js could save 15.3KiB (18% reduction). See optimized version or Save as. 上記のファイルはdrupalのデフォルトのJavaScript集約メソッドによって生成されたものですが、明らかに18%小さい可能性があります(これはこのサイトにとって大きな問題です)。既存のコードを壊すことなくdrupalサイトでJavaScriptを縮小することに関して、どのアプローチが最良と考えられますか?

5
hook_preprocess_page():ビューページを通知する方法?
いくつかのjavascriptおよびcssファイルをビューページにのみ挿入する必要があるカスタムモジュールを書いています。 私はhook_preprocess_pageを使用していますが、現在のページがビューからのものかどうかわかりません: function mymodule_preprocess_page(&vars) { var_dump($vars); //output: nothings that reference the views! if([view page]) { drupal_add_js([...]); drupal_add_css([...]); // Rebuild scripts $scripts = drupal_get_js(); $vars['scripts'] = $scripts; // Same for css } } テンプレートファイル(page-my_view_page_path.tpl.php)を使用できることはわかっていますが、jsと追加のcssは、モジュールが有効な場合にのみ含める必要があります。だから私はこのことを私のモジュールコードの中に直接入れておきたいです。 アイデア?
10 views  7  theming  javascript 

4
モーダルウィンドウ(ポップアップ)を作成する方法
Drupal 8のコア機能を使用して、モーダルウィンドウでページを開こうとしています。残念ながら、それに関する公式ドキュメントを見つけるのは非常に難しく、このトピックを扱っているブログのほとんどは古くなっているようです。しかし、私の知る限りでは、a要素に次の属性を追加することで、モーダルダイアログを作成することができるはずです。 class="use-ajax” data-dialog-type="modal" したがって、完全な例は次のようになります。 <a href="/impressum/lizenzen/43" class="use-ajax" data-dialog-type="modal"> <span class="glyphicon glyphicon-copyright-mark" aria-hidden="true"></span> </a> 私の場合/impressum/lizenzen/43、ビューページへのパスです。 これは機能しているようですが、管理者としてログインしている場合のみです。これは権限の問題ではないようですので、Bootstrap(私のサイトで使用しているもの)にはないコアライブラリが含まれている可能性がある管理テーマ(Seven)に関連していると思います。しかし、奇妙なことに、モーダルのタイトルバーに、ページタイトルの代わりに、文字列「配列」が表示されました。 誰かできましたか コアモーダルAPIの公式ドキュメントに誘導し、 管理者としてのみ機能する理由は何ですか? そして最後に私に教えてください、なぜ地球上でモーダルを呼び出すために文字列の会話への配列が行われるのですか?
10 8  javascript 

3
hook_form_alter()で#statesを使用してCCKフィールドグループを非表示にしますか?
カスタムモジュールがあり、ドロップダウン選択リストで特定の項目が選択されているときに、「#states」を使用してCCKフィールドグループを非表示にしようとしています。 以下のように、hook_form_alter()内から状態を使用してみました。 $form['group_mygroup']['#states']['invisible'] = array( ':input[name="field_trigger[' . LANGUAGE_NONE. ']"]' => array( 'value' => 'hide' ), ); これは何もしないようです。 http://proofgroup.com/blog/2008/dec/modifying_cck_fieldgroups_hook_form_alterなどのさまざまなサイトに従って、モジュールの重みを変更することを検討しました。 しかし、まだ役に立たない。状態を使用してフィールドグループ内のすべてのフォーム要素を非表示にできますが、フィールドグループ自体は非表示にできません。誰かが何か考えを持っていますか?
9 7  javascript 

6
ビューとJSを使用してコメント返信フォームを実装する方法
ビューを使用したコメント本文があり、投稿された各コメントの名前、コメント、写真、日付があります。すべてのコメントの最後に、コメントを追加できるコメント本文があります。 これは線形コメントシステムに最適ですが、スレッド化されたシステムが必要です。ビューでは、返信コメントリンクを追加できますが、その場合は新しいページに移動します。 私が欲しいのは、コメントボタンがクリックされたときにコメントフォームが返信リンクの下に来るようなJavaScriptベースのアクションです。これはビュー経由で可能ですか? そうでない場合、私の最良の選択肢は何ですか? 更新 ajaxコメントと呼ばれるモジュールを有効にしました。これはデフォルトのdrupalコメントシステムでうまく機能しますが、ビューではあまり機能しません。必要なクラスを追加し、基本的な機能を動作させましたが、新しく追加したコメントは、ページを更新するまで表示されません。また、メッセージ(モデレートのためにキューに入れられています)はページの下部に表示されます。 誰かがこのモジュールをビューで正常に設定した場合は、私に知らせてください。

4
フォームボタンでJavaScriptのみを呼び出す方法は?
私はJavaScriptとDrupalのフォームを実験しています。現在、JavaScriptを使用して選択リストにオプションを追加するモジュールの管理フォームにボタンを作成しようとしています。私が実行している問題は、ボタンをクリックすると、JavaScriptが呼び出されてもフォーム全体が更新されることです。Forms APIリファレンスを見て、ボタンを停止するためにボタンに設定できる何らかの属性があると考えましたが、何も見つかりませんでした。ボタンによるページの更新を停止する方法はありますか?これは行き止まりですか? $form['#attached']['js'] = array( drupal_get_path('module', 'test').'/js/test.js', ); $form['list'] = array( '#type' => 'select', '#options' => array(), '#attributes' => array( 'name' => 'sellist', ), '#size' => 4, ); $form['add_button'] = array( '#type' => 'button', '#value' => 'Add', '#attributes' => array( 'onclick' => "add_to_list(this.form.sellist, 'Append' + this.form.sellist.length);", ), ); //JavaScript function …
9 7  forms  javascript 


4
JavaScriptを特定のコンテンツタイプに追加する
JavaScriptファイルをコンテンツタイプに基づいて特定のページに追加するための最良の方法は何ですか?たとえば、私はこれを追加したいと思います: <script type='text/javascript' src='http://maps.google.com/maps/api/js?sensor=false'></script> これまでのところ、この方法を使用して特定のコンテンツタイプに追加しています。map_pageコンテンツタイプの場合、ページに以下の2行のコードを追加します--map_page.tpl.php。 drupal_add_js("http://maps.google.com/maps/api/js?sensor=false", 'external'); $scripts = drupal_get_js(); 他にもっと良い方法はありますか?可能であれば、いくつかの例を挙げることができますが、現在はよくわかりません...
9 7  javascript 



弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.