Jackさん、すみません、凡ミスでした。
↓ソース修正してみましたので、これなら大丈夫なはずです。
var preveiwTimerId;
var previewFunc = function(){
var url = window.document.location.href.split('/');
url = '/' + url.slice(url.length-4,url.length-1).join('/') + '/preview';
new Ajax.Updater('preview', url,
{asynchronous:true, evalScripts:true, method:'post',
onComplete:function(request){
Element.setStyle($('content_text'),{'width':'50%'});
Element.setStyle($('preview'),
{'position':'absolute','width':'48%','top':'146px','right':'10px'});
}, parameters:Form.serialize('wiki_form')});
return false;
}
var previewTimerFunc = function(){
clearTimeout(preveiwTimerId);
preveiwTimerId = setTimeout(previewFunc,1000);
}
Event.observe('content_text', 'keyup', previewTimerFunc, false);
で、Jackさんの質問に対する答えは以下のようになります。
redmineのwikiのプレビュー後のHTMLを返すURLは、
(存在するwikiのURL)/preview
となります。
まずこの時点で、wikiのURLが存在しない場合は404エラーが返ってしまいます。
Jackさんが最初に404エラーが返ってしまったのも、これが原因です。
で、逆に存在するwikiのURLであれば、どこのURLを指定しても、
preview機能を利用することができます。
preview機能は、DBに格納されている内容ではなく、
ページ中のテキストエリアの情報を都度サーバへ飛ばし、
wiki記法をHTMLに変換して返すという仕様になっているため、
他のページのpreviewURLを指定しても、今自分が書いている内容のpreview情報が
取得できるということになります。
08/01/31 に Jack<Jac...@gmail.com> さんは書きました:
--
栗栖義臣
chri...@gmail.com
http://blog.chrisryu.com/
http://dev.chrisryu.com/
すみません。再び凡ミスです。(病み上がりで頭が回ってないです;)
↓新規ページの時でも表示されるように修正しました。
var preveiwTimerId;
var previewFunc = function(){
var url = window.document.location.href.split('/edit').join('/').split('/');
url = '/' + url.slice(url.length-3,url.length).join('/') + '/preview';
new Ajax.Updater('preview', url,
{asynchronous:true, evalScripts:true, method:'post',
onComplete:function(request){
Element.setStyle($('content_text'),{'width':'50%'});
Element.setStyle($('preview'),
{'position':'absolute','width':'48%','top':'146px','right':'10px'});
}, parameters:Form.serialize('wiki_form')});
return false;
}
var previewTimerFunc = function(){
clearTimeout(preveiwTimerId);
preveiwTimerId = setTimeout(previewFunc,1000);
}
Event.observe('content_text', 'keyup', previewTimerFunc, false);
08/01/31 に Yoshiomi Kurisu<chri...@gmail.com> さんは書きました: