2013-03-26 71 views
-1

我正在使用一個web應用程序(Sharepoint),我需要做一些調整。應用程序本身功能非常強大,但有些地區有限制。例如,在這種情況下,我正在嘗試爲照片創建一個onlick事件。由於侷限性,我無法完成這一點。 (如果你知道共享點,你知道維基頁面限制)所以,我的目標是實際上在頁面上實現JavaScript(支持),它將定位圖像,並插入onclick事件。javascript編輯html on the fly

我遇到的問題是,我似乎甚至沒有得到一個簡單的搜索和替換工作。大多數例子似乎都是指文本節點,但我不熟悉那個術語。

我正在尋找一些指導。謝謝!


(這是不回答,但評論太短) 我試圖解決幾個問題。這是其中之一。我在一個站點中有一個文檔庫,並且它嵌入在另一個站點中。當用戶單擊文檔時,它會將文檔呈現在文檔庫的非常小的窗口內。我想要完成的一件事是在網址中添加一個「target = _blank」,以在全新的瀏覽器窗口中打開。不幸的是,這個文件列表是動態的,所以它必須在飛行中完成。第二個挑戰是一個圖像,如上所述。在這種情況下,有一個小小的選擇器箭頭可將數據刷新到另一個Web部件。雖然這有效,但點擊圖像會更方便。同樣,內容是動態的,在這種情況下,我需要從箭頭中讀取URL,並動態地將圖像更改爲可點擊。這可能超出我的能力,因爲我對Web開發實踐並不擅長。我更像一個編譯器類的人。 ;)我沒有任何代碼示例提供,因爲我所嘗試的所有內容都只是概念證明。我會再看看這些建議。謝謝。

+0

這聽起來像您已經嘗試了幾件事。在SO上發佈信息時,儘可能具體說明您嘗試過的內容以及爲什麼您認爲迄今爲止尚未發揮作用。 – 2013-03-27 01:16:18

回答

1

不知道你爲什麼試圖用JavaScript編輯HTML來添加事件處理程序。這通常不是您想要與DOM進行交互以添加事件處理程序的方式。

最簡單的事情就是使用jQuery並使用它找到具有適當選擇器的元素並添加事件處理程序。我以前在SharePoint項目中使用過這些,沒有任何問題。

沿線的某些東西將是一個開始的地方(儘管選擇器會導致DOM中所有img標籤的點擊事件處理程序)。 ('img')。click(function(){/ 你的代碼在這裏點擊時 /});

0

如果你希望避免jQuery的,這樣的事情可能工作的偉大:

function search(scope, tagName, attr, query) { 
    tagName = scope.getElementsByTagName(tagName); 
    var size = tagName.length; 
    var results = new Array(); 
    for (var i = 0; i < size; i++) { 
     if (tagName[i].getAttribute(attr) == query) 
      results.push(tagName[i]); 
    } 
    return results; 
}; 

上述功能不取其範圍的跨瀏覽器查詢您傳遞給它。因此,如果我們希望搜索文檔中具有'Clickable'作爲其類的所有圖像,我們可以執行以下操作:

var images = search(document, 'img', 'className', 'Clickable'); 
for (var i = 0; i < images.length; i++) { 
    images[i].onclick = onClickFunction; // onClickFunction being whatever you write. 
}