2010-10-09 31 views

回答

1

下面是我將如何解決相同的一般技術將在任何網站上工作的問題。在這種情況下,DNN只是一個普通的ASP.Net網站。首先看一下被點擊更新時運行的JavaScript:

__doPostBack('dnn$ctr374$EditHTML$cmdUpdate','') 

找到__doPostBack方法:

function __doPostBack(eventTarget, eventArgument) { 
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 
    theForm.__EVENTTARGET.value = eventTarget; 
    theForm.__EVENTARGUMENT.value = eventArgument; 
    theForm.submit(); 
    } 
} 

這是許多ASP.Net形式使用的標準doPostBack()方法。從這裏你可以看到你想用方法調用中的適當值填充__EVENTTARGET和__EVENTARGUEMENT隱藏字段並提交表單。

當然,您還需要填寫您實際想要保存到文本框的輸入控件中的數據。如果你使用HTML模塊的基本文本框模式,那麼你可能會更容易做到這一點,那麼你只需要設置一個textarea的值,而不是找出在fckEditor中插入值的位置,並且該技術將會如果站點配置爲使用Telerik提供程序而不是fck提供程序,則仍然有效。

有一點需要注意的是,控件名稱可能會不時變化,所以您需要確保您正在閱讀事件目標的正確ID,而textarea不只是硬編碼的東西。

+0

鏈接在評論結束時包含完整的源代碼,我相信我已經完成了您建議的所有檢查,請檢查並提供反饋:http://www.dotnetnuke.com/Community/Forums/tabid/795/ forumid/201/threadid/390240/scope/posts/Default.aspx – Shoaibi 2010-10-11 04:12:28

+0

@Shoaibi,快速查看鏈接上的代碼看起來總體上對我來說(注意沒有PHP經驗)。我沒有看到任何東西來保存登錄cookie,這可能是一個問題。對cookies進行排序後,我將使用Live HTTP Headers來捕獲手動文章中的所有值,並讓腳本使用這些值。然後我會編輯你想改變的值。 – ScottS 2010-10-11 23:33:07

+0

我可以在不登錄的情況下編輯textarea裏面的文本,我真的需要維護cookie嗎? – Shoaibi 2010-10-12 03:12:52