2010-08-16 25 views
5

Tôi có mã này trong HTML của tôi:URL hiển thị hiện tại của trang web (động) trong HTML

<h3 id="left">Lorem Ipsum </h3> 

       <h3 id="right">[Current URL Here]</h3> 

Tôi muốn hiển thị (dynamicly) URL hiện tại bên trong <h3> thẻ. Tôi đã cố gắng tìm ra nó trong một vài ngày, nhưng tôi thực sự là một nhà phát triển di động, không phải là một nhà phát triển HTML, vì vậy nó đã được chứng minh là khó khăn. Tôi cần điều này cho một ứng dụng tôi đang làm việc trên, vì vậy hãy đi dễ dàng với tôi :)

Xin cảm ơn trước.

Trả lời

9
document.getElementById('right').innerHTML = window.location.href; 
+0

đánh bại tôi vào nó :) – Sphvn

+0

....... cùng :) – vol7ron

2

Vâng, bạn chỉ đơn giản là không thể làm điều đó trong HTML thuần túy.

Với javascript, bạn có thể đi với

<h3 id="right"> 
<script type="text/javascript"> 
document.write(location.href); 
</script> 
</h3> 

Ngược lại, nếu bạn đang yêu cầu một trang trên máy chủ, bạn nên thay vì có nó được thực hiện trong đó.

+2

javascript MooGoo là một cách sạch hơn để xử lý điều này. –

0

mã php để nhận url đầy đủ của trang hiện tại như sau

<?php 

    $protocol = $_SERVER['HTTPS'] == 'on' ? 'https' : 'http'; 

    echo $protocol.'://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; 
?> 

Reference

nếu bạn muốn sử dụng javascript sử dụng phương pháp được đề xuất bởi @MooGoo

sử dụng đầy đủ về điều đó tập lệnh như sau

<SCRIPT LANGUAGE="JavaScript">   
    document.getElementById('right').innerHTML = window.location.href;  
</SCRIPT> 

sử dụng thứ là sau khi bạn đã tuyên bố/định nghĩa <h3 id="right">[Current URL Here]</h3>

Hope hữu ích

+0

-1 vì không đề cập đến một newb mà chúng nên xuất ra '$ _SERVER ['REQUEST_URI']' thông qua 'htmlspecialchars'. Xem ở đây: http: //stackoverflow.com/questions/3446459/what-is-the-benefit-of-using-the-super-global-serverphp-self-in-php/3446566#3446566 Các nguyên tắc tương tự cũng được áp dụng. – aaronasterling

2

Nếu bạn muốn làm điều đó trong PHP, đó là tham gia nhiều hơn một chút:

$url = !empty($_SERVER['HTTPS']) ? 'https://' : 'http://'; 
$url .= $_SERVER['HTTP_HOST'] . htmlspecialchars($_SERVER['REQUEST_URI']); 

Như aronasterling điểm ra, bạn cần phải khử trùng $_SERVER['REQUEST_URI'] để ngăn chặn XSS.

-1

Trong khi JavaScript là gì là phổ biến hơn, bạn cũng có thể sử dụng server-side includes:

<h3 id="right"> 
    <!--#echo var="SERVER_NAME" -->/<!--#echo var="DOCUMENT_URI" --> 
</h3> 
  • thay vì SERVER_NAME bạn có thể thử HTTP_HOST
  • thay vì DOCUMENT_URI bạn có thể thử REQUEST_URI; một bao gồm các chuỗi truy vấn, người kia không
+0

-1 xem nhận xét của tôi về mọi câu trả lời khác trong chuỗi này liên quan đến php. – aaronasterling

+0

@aaronasterling: Đọc sự khác biệt giữa 'DOCUMENT_URI' và' REQUEST_URI'. Nếu người hỏi muốn tránh XSS, anh ta nên sử dụng cái thích hợp. Nếu người hỏi trên mạng nội bộ hoặc sử dụng trang để sử dụng cá nhân, thì XSS không phải là mối đe dọa. – vol7ron

+0

Đây là lý do tại sao mọi người phải gửi hồ sơ trước khi có khả năng bỏ phiếu cho phép – vol7ron

-1

Mã Php:

function curPageURL() { 
$pageURL = 'http'; 
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} 
$pageURL .= "://"; 
if ($_SERVER["SERVER_PORT"] != "80") { 
    $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
} else { 
    $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
} 
return $pageURL; 
} 

<h3 id="right">echo curPageURL();</h3> 
+0

-1 xem câu trả lời của tôi srinivas bình luận. – aaronasterling

0
<script type="text/javascript"> 
var segments = window.location.pathname.split('/'); 
var toDelete = []; 
for (var i = 0; i < segments.length; i++) { 
    if (segments[i].length < 1) { 
     toDelete.push(i); 
    } 
} 
for (var i = 0; i < toDelete.length; i++) { 
    segments.splice(i, 1); 
} 
var filename = segments[segments.length - 1]; 
console.log(filename); 
document.write(filename); 
</script> 
Các vấn đề liên quan