2010-12-20 9 views
0

URLの一部を別の部分に挿入しようとしています。アドレスバーにURLの一部をリンクに書き換える

URLは、ページ内のリンクはdomain.com/do/Login/12345(この最後の番号は、すべてのユーザーのために変更されます)

(なる必要があり、その後domain.com/test.php?/12345を読み込みますURL:domain.com/test.php?/12345はサイトの所有者によって既に設定されているため変更できません。)

http://wwwを削除する必要がありました。新しいユーザーとしての上記の部分は、スパム防止のために複数のリンクを提出することはできません。最後のスクリプトにはhttp://wwwが含まれている必要があります。

あなたは私が得る必要があるのは、最終的には12345であることがわかりますが、これを達成する方法(javascriptの初心者)はあまりよく分かりません。これはこれまで私が持っているものです:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Path test</title> 
</head> 

<body> 

<script> 
// get URL eg http://www.domain.com/test.php?/12345 
newURL = window.location.protocol + "//" + window.location.host + "/" + window.location.pathname; 
</script> 

<script> 
//write new domain then add user number ie 12345 
document.write('http://www.domain.com/do/Login/' + window.location.pathname); 
</script> 
</body> 
</html> 

これは明らかに機能しませんが、私がどこにいるのかを示しています。

は私がhttp://www.sitepoint.com/forums/showthread.php?t=244955で見つけたスクリプトを使用して、いくつかの運を持っていたが、それだけで、同様の.htmlに拡張子名を含むファイル名での.phpなど

任意のアイデアを働いていましたか?

ありがとうございます。

答えて

1

まず、疑問符の後にURLの一部を取得する必要があります。これは、

window.location.search 

変数で利用できます。すでに「/」が含まれていることに注意してください。次に、実際のリンクを作成する必要があります。 document.write( 'http:// ...)は動作しません。これはテキスト形式で記述するだけで、実際のアンカータグではないからです。そのために次のようなものが必要:

document.getElementById("yourLink").href = "http://domain.com/do/Login" + window.location.search 

上記getElementByIdを()メソッド内の要素と一致するidを持つHTML内のアンカータグを置くことを忘れないでください。あなたのHTMLマークアップにアンカータグを入れたくない場合は、のようなものでJavaScriptを使用して作成することができます

var link = document.createElement('a'); 
link.href = "http://domain.com/do/Login" + window.location.search; 
document.body.appendChild(link); 

これはあなたのニーズに合わせ、さらに必要な場合があります。

+0

すばやい返信をありがとう。それはほとんどそれを行います。これは私のJSが偉大ではないが使用してそれを行う最善の方法ではないかもしれません。 最終的なリンクはhttp://www.domain.com/do/Login?/12345です。/Login後の疑問符のみが読み込まれるようにする必要があります。http://www.domain.com/do/Login/12345 – Jamie

+0

window.location.search変数でsubstr()メソッドを使用すると、window.location .search.substr(1)。ああ、次回にいくつかの研究をしようとする。さまざまなJSオブジェクトがw3schoolsに持つすべてのメソッドを見つけることができます。文字列オブジェクトはここにあります:http://www.w3schools.com/jsref/jsref_obj_string.asp – devius

+0

@Jamie - これが正解なら、これを記入してください。将来的にはこれはもっと役に立つでしょう他のユーザーですか? – devius

0

これは作業を行うことができますか? URL全体を使用し、 '?' (パラメータの先頭からの意味)、パラメータをベースURLに連結します。

var oldUrl = window.location.href; 
var parameters = oldUrl.substring(oldUrl.indexOf('?',0),oldUrl.length); 

var newUrlBase = 'http://www.domain.com/do/Login/'; 
var newUrl = newUrlBase + parameters; 
+0

ご返信ありがとうございます。これはほとんど機能しますが、http://www.domain.com/do/Login/?/12345を出力します。これはhttp://www.domain.com/do/Login/12345を出力するように調整できますか?/が12345より前に削除されました – Jamie