2016-09-30 6 views
1

Joomlaを使用して私のサイトを作成します。私は自分のサイト上でレンダリングされた任意のページにJavaScriptでこのパスを取得したい私のサイトがjavascriptでサイトのルートURLを取得

https://domain.com/directory/siteName

に位置していましょう。問題は内部のサブメニューやサイトのさまざまな設定以下であり、パスがthese-

  1. https://domain.com/directory/siteName/anyMenu/index.php

  2. https://domain.com/directory/siteName/index.php

  3. https://domain.com/directory/siteName/index.php?option=com_content&id=9

  4. などのいずれかであることを来りますhttps://domain.com/directory/siteName/anyMenu

  5. https://domain.com/directory/siteName/anyMenu.html

Iはない

var dummy = new Image; 
dummy.src = '$';     
alert(dummy.src.slice(0,-1)); 

また、これはケース1にindex.phpのように最後のノードを切り捨て

var re = new RegExp(/^.*\//); 
alert(re.exec(window.location.href)); 

like-いくつかのソリューションを試みました同じこと。それで、javascriptだけを使ってサイトの場所を正確に知る方法はありますか?また、任意の拡張機能に適用され、その拡張機能を任意のレベルのディレクトリ構造を持つ任意のサイトにインストールできるように、結果は任意のサイトに対して汎用でなければなりません。

これは、私が内部的に別のjsファイルを登録しているjsファイルを使用しているため、これが必要です。したがって、登録するjsのパスは最初のjsで指定する必要があります

答えて

1

これには、JoomlaのJURI::base()関数を使用できます。それはPHPのことを忘れないでください。

$document = JFactory::getDocument(); 
$document->addScriptDeclaration('var base = \''.JURI::base().'\''); 

JSスクリプトで変数baseを使用できるようになりました。上記の宣言の後で文書に追加することを忘れないでください。

関連する問題