2012-07-24 54 views
0

我正在研究一些15年的舊代碼,並且有一條線似乎只能在IE中實際得到設置和使用。我不能改變那條線,因爲實際上有更多這些線,並且在其他asp頁面中引用,我知道這是一場噩夢。 代碼:這個標準的JavaScript

parent.frmParent.id_item.value = '<%=Request("id_item")%>' //The actual string 
                  //doesn't matter... 

我已經試過:

var parent.document.getElementById("id_item").Value 
var parent.document.getElementById("frmParent")("id_item").Value 

我是關閉?它必須存在於DOM中。

+1

您確定'<%= Request(「id_item」)%>位與服務器端模板框架無關代替? – hugomg 2012-07-24 12:48:05

+0

是的,這是asp服務器端,應該使它不相關。它確實在某些瀏覽器中獲得了價值,但FF並不是其中之一。主要的問題是,我當然可以在整個局部頁面中使用服務器端代碼的值,但是它會通過駐留在父頁面上的JavaScript通過頁面進行操作。所以,在不重寫網站的情況下(它會消失),我只需要一個破解工具就可以使用FF – Somejerk 2012-07-24 13:00:05

+0

看來應該工作的不是。我可以確認服務器端正在返回一個值,parent.document.getElementById(「id_item」)。值是正確的,因爲我知道但不工作,所以它不會讓人驚訝,在其他1997年JavaScript線的迷宮中越過。感謝你幫助我試圖放棄這一切。 – Somejerk 2012-07-24 13:10:43

回答

0

我關閉了嗎?它必須存在於DOM中。

我懷疑你正在尋找.value - 即只是在小寫,例如,

var val = parent.document.getElementById("id_item").value; 

這將是從ID爲id_item的元素檢索值的方式。

不過,我懷疑這不是什麼代碼是應該做的事情......

+0

是的,我試圖檢索該值。我犯了拼寫錯誤,v是小寫字母,仍然不起作用。 – Somejerk 2012-07-24 12:48:29

1

應該是小寫value(而不是Value)...

parent.document.getElementById("id_item").value 
+0

第二行不是有效的代碼。 – Alnitak 2012-07-24 12:43:45

+0

啊,公平點@Alnitak ...代碼失明,打字太快 – freefaller 2012-07-24 12:44:15

0

我要去在這裏進行一次長距離拍攝:

<%=Request("id_item")%>可能是指.NET Request對象的密鑰id_item的查詢字符串值。嘗試使用此代替:

var qs = window.location.search(1); 
var items = qs.split('&'); 
var pair; 
var result; 

for (var i = 0; i < items.length; i++) { 
    pair = items[i].split('='); 

    if (pair[0] === 'id_item') { // the QS key 
     result = pair[1]; // the QS value 
     break; 
    } 
} 

var element = document.getElementById(result); 

這可能是值得把查詢字符串邏輯放入一個函數,例如, getQuerystringValue(querystring, key)

在附註中,該房產是.value,而不是.Value,JavaScript區分大小寫。

0

您的帖子標記爲javascript,但這個片段肯定是服務器端:<%=Request("id_item")%>

這將簡單地打印出Request集合中的id_item字段(或可能調用名爲Request的方法)。您應該查看在此頁面後面運行的服務器端框架並相應地更新您的文章。如果沒有更多關於您使用的語言的知識,我無法提供更多幫助。

+0

哦,它保存了一個值,在某些瀏覽器中,JavaScript的值不是其中之一,這是這裏的目標。 – Somejerk 2012-07-24 13:01:48

0

啊,我現在看到它。這裏你的問題可能是IE會自動添加文檔中的id作爲相應窗口對象的屬性。在這些情況下,您將需要用document.getElementById(idName)替換物業訪問權限。

通過查看您的示例,我的心靈力量說frmParent是一個正常的Javascript屬性(指向另一個javascript窗口)樂隊id_item是一個元素ID(祖父母文檔中的東西)。如果是這種情況,請查看下列內容是否有效:

parent.frmParent.document.getElementById("id_item").value = /*...*/