我真的需要帮助。我正在开发一个TiddlyWiki,作为我的组织的导航工具,用于在我们极其缓慢和繁琐的内部网站/服务器上查找文件。
问题:一些选项TiddlyWiki保存到一个曲奇,显然与内部网站的cookie选项冲突。TiddlyWiki必须托管在内部网站上/从内部网站加载,因此它的cookie具有与内部网站相同的url/名称。各种有用的TiddlyWiki插件都会留下cookies,或者阻止用户将任何东西上传到内部网站,甚至阻止其打开。
告诉这个网站的每一个用户在查看网站后删除他们的cookie不是一个选项。
我无法访问cookie的内容,因为我们的信息管理权限过程缓慢、复杂,甚至不理解我的问题。
为了解决这个问题,我做了很多事情:
我使用了CookieManager插件,并将其设置为不允许任何cookie,但仍有一个cookie被丢弃。
我试过禁用插件,重新上传和测试。在摆脱了几个有用的插件之后,我至少还能访问内部网站。然而,我将不得不禁用高级搜索插件,以解决问题,不能上传到内部网站。我确实需要高级搜索,因为它既提供了一些访问者/编辑器隔离,也是我的组织使用TiddlyWiki的主要销售特性之一。
我尝试将高级搜索插件中的选项重命名为可能不会被我们的内部站点用作cookie选项的名称。这似乎不管用。
什么工作是手动编辑TiddlyWiki源代码来注释掉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模板之后才能完成,这有时需要在完成TiddlyWiki保存所需的复制/粘贴/文件重命名步骤之后才能完成。(这些步骤通常会导致TiddlyWiki模板混乱,这样它就不会认为TiddlyWiki文件是有效的。在我升级之前,它将拒绝保存更改。)
我不介意手动这么做。这是个麻烦,但不会花很长时间。不过,我不能指望我们网站团队的任何其他成员会这么做,我需要让我们的TiddlyWiki在没有我的情况下能够被维护/更新。
我试着像这样制作systemConfig文件:
//{{{
function saveCookie(name) { }
//}}}我想/希望它会覆盖这个函数,即使它在原始源代码中是完整的。如果是这样的话,它就不会在TiddlyWiki放弃破坏我们内部网站访问能力的曲奇之前做到这一点。我进一步尝试从https://stackoverflow.com/questions/595228/how-can-i-delete-all-cookies-with-javascript插入第一个答案的一个https://stackoverflow.com/questions/595228/how-can-i-delete-all-cookies-with-javascript版本。这会导致TiddlyWiki冻结。它会发出堆栈溢出警报。
在这方面我真的需要帮助,因为我不知道还能做什么,这是一个可能危及我的组织使用TiddlyWiki的问题。
谢谢,
荷兰语
发布于 2011-07-14 13:41:50
我还在TiddlyWiki Google (http://groups.google.com/group/tiddlywiki/browse_thread/thread/b33c696a628e4606)上问了这个问题,得到了几个答案。
我被介绍给http://mptw2.tiddlyspot.com/#HijackingHowto,它展示了如何重新定义核心TiddlyWiki函数,例如,在某些条件下改变它们的行为。
大多数问题远远超出了我解决这个问题的需要,但是仅仅看到他们如何重新定义他们的核心功能就给了我一个解决方案。
我所知道的唯一一个JavaScript是我在修改TiddlyWiki时学到的,所以我不完全理解为什么我现在和以前拥有的东西不能工作,但是下面的代码将完全杀死cookies (再说一次,它应该在一个带有插件的systemConfig中):
//{{{
window.saveCookie = function(name) { }
//}}}我在想,这可能与运行在将所有声明的函数都分配给TiddlyWiki的级别上运行的核心TiddlyWiki代码有关。
https://stackoverflow.com/questions/6494510
复制相似问题