2010-10-01 64 views

回答

4

使用value屬性,而不是innerHTML,並確保你的代碼的計算結果爲undefined,您可以通過不return聲明它包裹在一個函數來完成。如果你不這樣做,頁面的內容將被替換爲你的代碼評估的任何內容(在這種情況下,字符串'插入')。

javascript:(function() {document.getElementsByTagName('textarea')[0].value = 'inserted';})(); 

更新2012年1月14日

我未能發現,原來的代碼是治療document.getElementsByTagName('textarea')作爲一個單一的元素,而不是NodeList這是事實,所以我已經更新了我的代碼以[0] 。 @ streetpc的回答更詳細地解釋了這一點。

+0

Downvoter:我想你低估了這個,因爲我錯過了原來的代碼處理'document.getElementsByTagName('textarea' )'作爲一個單一的元素。這很公平,但留言評論會有幫助。 – 2012-01-14 11:57:34

0

在jQuery中你如果這樣使用:

單元素 - > $( '#element_id')HTML(的html這裏')
所有文本 - > $('textarea')。val('你的html在這裏')

我不得不承認,我不知道它爲什麼這樣工作,但它的工作原理。並且使用rameworks,它們會爲你節省時間和精力。

+0

是否有可能在書籤使用jQuery? – Antonio 2013-07-16 14:51:13

+0

@Antonio是的,您可以通過將腳本標籤附加到文檔來加載任何腳本。例如http://benalman.com/projects/run-jquery-code-bookmarklet/ – meleyal 2014-03-28 15:46:31

+0

@meleyal,Ithink這是非常危險的:如果jQuery已經在頁面中使用了jQuery版本,可能會出現衝突 – Antonio 2014-03-28 20:19:25

3

Unlinke getElementByIdgetElementsByTagName具有sElements因爲它返回一個陣列陣列狀節點列表的匹配元素的。所以你必須首先訪問的內容之一,我們說的第一個用於簡單:

javascript:void((function(){document.getElementsByTagName('textarea')[0].value='inserted'})()) 

此外,如其他人所說,value屬性,而不是innerHTML這裏。

+1

實際上'getElementsByTagName()'返回一個類似數組的'NodeList'而不是一個數組,但你的觀點是正確的。 – 2012-01-14 12:00:17

+0

謝謝,修正了這個問題 – 2012-01-20 15:18:56

1

如果有人想知道如何使用當前重點的文本字段,使用以下命令:

document.activeElement.value = "...";