2013-02-05 37 views
7

Tôi muốn nhận tên miền chính hoặc url hoặc tên máy chủ bên trong javascript iframe.Làm cách nào để có được tên miền chính trong iframe với tên miền chéo?

Tôi đã sử dụng document.referrer cho điều đó, nhưng nó chỉ hoạt động lần đầu tiên. Điều này có nghĩa là iframe của tôi chứa biểu mẫu để khi người dùng gửi biểu mẫu iframe tải lại và liên kết giới thiệu sẽ trở thành tên miền iframe của tôi.

Bây giờ mỗi lần khung nội tuyến của tôi tải, tôi chỉ muốn tên miền chính khi tôi tạo liên kết bằng cách sử dụng.

Ví dụ:

$(".setUrl").each(function(){ 
       var referrer = document.referrer; 
       this.href=referrer+"/abc.html"; 
    }); 

Nhưng điều này chỉ hoạt động lần đầu tiên vì lý do tôi đã đề cập ở trên. Vì vậy, ai đó có thể giúp tôi vượt qua điều này?

Hỏi tôi trong trường hợp cần làm rõ hơn.

Trả lời

1

Bạn có thể làm một điều này:

  1. Lưu miền phụ huynh/url/hostname trong một số biến ẩn trong form.And bạn nộp mẫu đơn đó.
  2. Không được đặt/lưu/sử dụng giá trị documentReferrer từ url hiện tại. Khi bạn cần, hãy sử dụng biến ẩn.

Bạn có thể sử dụng bất kỳ logic ... ví dụ:

var refval=$("#documentReferrer").val(); 
if(refval=="") 
{ 
    $("#documentReferrer").val(referrer); //So, for the future, this will not execute... 
} 
4

Thời điểm bạn có URL domain cha bên trong iFrame (từ document.referrer), bạn có thể lưu trữ rằng URL trong localStorage, sau đó sau khi biểu mẫu được gửi, hãy lấy lại nó từ chính địa chỉ localStorage.

Cái gì như:

var referringURL = document.referrer; 
//store the url in localStorage 
localStorage['referrer'] = referringURL; 

Bây giờ sau khi mẫu được gửi:

var originalReferrer = localStorage['referrer']; 
//you have the original referrer back 
Các vấn đề liên quan