2012-03-23 41 views
3

我在我的SharePoint網站上有一個aspx頁面,其中包含標記。出於某種原因,頁面上的每個按鈕都會在點擊時重新加載頁面。即使沒有屬性(id,class等)或函數的按鈕也會在點擊時重新加載頁面。我該如何解決這個問題?我甚至無法看到調試器中發生了什麼,因爲我沒有調用任何重載函數,所以我不知道在哪裏放置斷點。SharePoint <button>元素執行頁面的不必要的重新加載

非常感謝您的幫助,我非常感謝。

+0

你是怎麼把按鈕放在頁面上的?他們有'runat =「server」'或者他們是' naivists 2012-03-26 09:36:07

+0

這些按鈕本身只是(我從我的代碼中刪除了一切有趣的內容,以確保它不會導致問題,但是,我的按鈕位於之間 標籤。 – user1226409 2012-03-26 16:51:04

回答

0

首先搜索一個名爲doPostback的函數,並在入口點上設置一個斷點並單擊一個按鈕。如果您點擊此斷點,則可能意味着自動回發功能會針對生成該按鈕的控件開啓。但是,如果觸發該斷點,則應該能夠查看堆棧跟蹤以確定如何到達那裏。

如果這不起作用,請在瀏覽器中使用F12工具,從HTML部分開始並搜索(Ctrl-F)單詞「click」。然後轉到腳本選項卡併爲每個JavaScript文件執行相同的操作。如果所有按鈕都顯示出行爲,則很可能會記錄點擊事件。可能使用類似於$('button')的jQuery,以便它匹配頁面上的所有按鈕並註冊點擊處理程序。

如果沒有找到它,並且您可以從http://startermasterpages.codeplex.com/下載其中一個母版頁並暫時用其中之一替換母版頁。首先截取您的頁面上加載的腳本。然後將它們添加到啓動器母版頁中,直到不需要的行爲返回。然後在該腳本的每個函數入口點上設置一個斷點,然後單擊一個按鈕,查看您所登錄的位置。

+0

感謝您的建議,這非常有幫助。我不知道從哪裏開始,但是這至少讓我朝着正確的方向前進。在JavaScript文件中一次找出問題的根源),似乎這個問題可能來自某些SharePoint代碼中的怪癖,但仍試圖找出是什麼原因導致它的出現 – user1226409 2012-03-26 16:00:54

+0

我使用了Google Chrome的調試器的事件偵聽器在'click'事件上放置一個斷點,導致函數停止在SharePoint JavaScrip中t文件。 .js文件有一個非常複雜的名稱,但是文件頂部的註釋是MicrosoftAjax.js,所以我認爲這就是它的真正含義。該文件只有3行代碼(因此函數全部在一行中,我不知道如何調試),而Call Stack只顯示MouseEvent本身。 – user1226409 2012-03-26 16:59:47

8

這裏的問題是與<按鈕>標記。它的默認行爲是充當提交按鈕,除非另有聲明並將重新加載。

要保留您的<按鈕>標記,請在按鈕元素上添加type ='button'。我認爲這可以防止重新加載。

或者你也可以用type ='button'輸入<輸入>標籤。這也保證了重新加載的發生。

或者其他一些帶onclick事件的html元素也可以工作。

+0

它工作@Josey,謝謝 – 2016-02-23 02:17:53

+0

如果這解決了你的問題,請標記我的答案爲答案。 – Josey 2016-02-24 18:28:03

+0

嗨@Josey,不幸的是我不是做出答案的人,或者我沒有足夠的權限來做這件事 – 2016-02-25 22:12:24

相關問題