2011-01-19 60 views

回答

2

既然你不能在JavaScript中的頭,我不認爲你可以讓他們在GWT客戶端之一:Accessing the web page's HTTP Headers in JavaScript

更新:

也許你可以更新的login.php寫從引薦到一個隱藏輸入的標籤,也許是這樣的:

<input type="hidden" name="referrer" name="referrer" value="<?php Print referrer_value ?>"> 

然後,GWT,你應該能夠得到使用這樣的值:

InputElement elt = (InputElement)Document.get().getElementById("referrer") 
String referrer = elt.getValue() 

注意:這是未經測試的代碼,我甚至不知道這是有效的PHP,但希望這有助於!

+0

解析它我有網頁的login.php其重定向到一個GWT應用程序。不會我能夠得到引用標題「somedomain/login.php」?即使在入門級沒有? – Rohan 2011-01-19 18:56:28

+0

不,即使在入口點類中也不可能獲得任何請求頭,因爲請記住,「client」包下的所有java代碼實際上都編譯爲javascript代碼。但是,你可以做的是使用login.php將數據發送到由gwt生成的javascript。也許你可以將引用數據寫入login.php返回的頁面dom中的某個元素,然後通過gwt從gwt訪問它。 – Upgradingdave 2011-01-19 20:32:09

0

我有同樣的問題,但我做了一些更改標題鏈接標籤dinamically充電。 我用這個代碼:

LinkElement link = Document.get().createLinkElement(); 
link.setHref("css/home.css"); 

我不知道,如果是最優雅的解決方案,但它的工程!

編輯: 如果您需要修改任何現有的元素,你應該這樣做:

NodeList<Element> links = Document.get().getElementsByTagName("link"); 
for(int i = 0; i < links.getLength(); i++){ 
    LinkElement l = (LinkElement)links.getItem(i); 
    if(l.toString().contains("href_to_replace.css")){ 
     l.setHref("new_href.css"); 
     break; 
    } 
} 
0

您可以訪問JavaScript中的引用,並把它傳遞到Java(而對JavaScript從Java編譯) 。您需要用JavaScript定義Java中的JSNI(JavaScript Native Method)方法。此代碼可以訪問瀏覽器的文檔和窗口對象,但您需要分別使用$ doc和$ wnd變量來實現此目的。在

https://developers.google.com/web-toolkit/doc/latest/DevGuideCodingBasicsJSNI

0

更多信息,您可以得到完整的URL字符串,像這樣:

字符串URL = Document.get()的getURL()。

得到一個問號的指標,並通過自己