2011-06-27 35 views
2

我真的需要幫助。我正在開發一個TiddlyWiki,作爲我們組織的導航工具,用於在我們極其緩慢和繁瑣的內​​部網站/服務器上查找文件。如何完全禁用/消除TiddlyWiki中的Cookie?

問題:TiddlyWiki保存到cookie的某些選項顯然與內部網站自己的cookie選項衝突。 TiddlyWiki必須由內部網站託管/加載,因此其Cookie與內部網站具有相同的網址/名稱。各種有用的TiddlyWiki插件會留下cookie,以阻止某人無法將任何內容上傳到內部網站,甚至無法阻止其打開。

告訴本網站的每個用戶在瀏覽網站後刪除他們的cookies不是一種選擇。

我無法訪問cookie的內容,因爲我們的信息管理權限過程緩慢,複雜,甚至不理解我的問題。

我已經做了很多事情來嘗試解決這個問題:

我用CookieManager插件並將其設置爲不允許任何cookie,而是一個cookie仍然被丟棄。

我試過禁用插件,重新上傳和測試。在擺脫了幾個有用的插件之後,我至少仍然可以訪問內部網站。但是,我必須禁用高級搜索插件才能解決無法上傳到內部網站的問題。我真的需要高級搜索,因爲它提供了一些訪問者/編輯器隔離,也是我的組織使用TiddlyWiki的主要銷售功能之一。

我試着將高級搜索插件中的選項(特別是)重命名爲我們內部網站可能不會用作cookie選項的名稱。這似乎沒有工作。

什麼工作是手動編輯的TW源代碼註釋掉的SaveCookie的功能的內部結構:

function saveCookie(name) 
{ 
// var cookies = {}; 
// for(var key in config.options) { 
//  var value = getOption(key); 
//  value = value == null ? 'false' : value; 
//  cookies[key] = value; 
// } 
// document.cookie = 'TiddlyWiki=' + String.encodeHashMap(cookies) + '; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/'; 
// cookies = getCookies(); 
// for(var c in cookies) { 
//  var optType = c.substr(0,3); 
//  if(config.optionHandlers[optType]) 
//   removeCookie(c); 
// } 
} 

我的問題,不過,是這個具有每一次升級之後進行的TiddlyWiki模板,我有時需要在完成Windows需要的複製/粘貼/文件重命名步驟後才能允許TiddlyWiki保存。 (這些步驟經常搞砸了TiddlyWiki模板,以至於它不認爲TiddlyWiki文件是有效的,它會拒絕保存更改,直到我升級。)

我不介意這麼做手動。這很麻煩,但不需要很長時間。儘管如此,我不能指望我們的網站團隊的其他成員做到這一點,而且我需要讓我們的TiddlyWiki處於可以在沒有我的情況下維護/更新的狀態。

我試圖使systemConfig文件是這樣的:

//{{{ 
function saveCookie(name) { } 
//}}} 

我想/希望它會覆蓋功能,即使它是在原來的源代碼不變。如果確實如此,那麼在TiddlyWiki放棄一個能夠訪問我們內部網站的cookie的情況下,它就不會這樣做。我進一步嘗試插入來自https://stackoverflow.com/questions/595228/how-can-i-delete-all-cookies-with-javascript的第一個答案的TiddlyWiki版本。這會導致TiddlyWiki凍結。它引發了堆棧溢出警報。

我真的需要幫助,因爲我不知道還有什麼要做,這是一個可能會危及我的組織使用TiddlyWiki的問題。

感謝,

荷蘭

回答

3

我也問上的TW谷歌論壇(http://groups.google.com/group/tiddlywiki/browse_thread/thread/b33c696a628e4606)這個問題,並得到了幾個答案。

我被指向http://mptw2.tiddlyspot.com/#HijackingHowto,它顯示瞭如何重新定義核心TiddlyWiki函數,例如,在某些條件下改變它們的行爲。

其中大部分遠遠超過我需要解決這個問題,但只是看到他們如何重新定義他們的核心功能給了我一個解決方案。

唯一的JavaScript我知道我拿起同時用 的TW修修補補,所以我不完全明白,爲什麼我現在有工作 什麼我以前沒有,但這裏的代碼,將徹底 殺死餅乾(並再次,它應該是一個插件內標籤systemConfig):

//{{{ 
window.saveCookie = function(name) { } 
//}}} 

我想它可能有一些做與 運行層面的核心的TW代碼,所有申報的功能正被分配到window