下載
軟體開發
帳戶
下載
軟體開發
登入
我忘記帳戶名和密碼了
新增帳戶
語言
手冊
語言
手冊
×
登入
登入名稱
密碼
×
我忘記帳戶名和密碼了
繁體中文翻譯狀態
類別:
軟體
人
PersonalForge
Magazine
Wiki
搜尋
OSDN
>
軟體搜索
>
Internet
>
WWW/HTTP
>
Dynamic Content
>
XOOPS
>
Ticket List/Search
>
待辦事項 #6209
XOOPS
描述
專案概要
開發人員儀表板
專案的網頁
Developers
Image Gallery
List of RSS Feeds
活動
使用統計
歷史
檔案下載
發布列表
Stats
原始碼
儲存庫列表
CVS
查看儲存庫
待辦事項
待辦事項列表
里程碑列表
類型列表
元件列表
List of frequently used tickets/RSS
新增待辦事項
文檔
溝通
討論區
討論區列表
幫助論壇 (1)
公開討論 (1)
通信論壇
通信論壇列表
xoops-cvslog
新聞
待辦事項 #6209
待辦事項列表
新增待辦事項
RSS
テンプレートとブロック管理のプレビューでエラーになる場合がある
啟用日期:
2005-06-23 18:29
最後更新:
2005-08-25 08:15
監視
ON
OFF
回報者:
toshimitsu
負責人:
(無)
類型:
問題回報
狀態:
開啟
元件:
(無)
里程碑:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
無
檔案:
無
細節
回覆
テンプレートマネージャーのプレビューでエラーになる場合があ
る
xoops2.0.10 JP 以降
テンプレートマネージャーの
プレビューポップアップで
性格には、どういう場合かは、よくわかりませんが
先頭に例えば
<script type="text/javascript">
<!--
alert("test");
//-->
</script>
を書くと
かならず
javascriptの
witelnで、終了していない文字列型の定数ですエラー
不正なHTMLページになるためポップアップもしない
これは、仕様かな?たぶん違いますよね。
カスタムブロックプレビュー(HTML)も同じです
Ticket History (3/7 Histories)
Show older Histories
2005-06-23 23:09
Updated by:
toshimitsu
評語
回覆
Logged In: YES
user_id=6033
<script type="text/javascript">
<!--//
alert("test");
//-->
</script>
上記の例の場合
<script type="text/javascript">
<!--//
win = openWithSelfMain
("", "xoops_system_block_preview", 250, 200, true);
win.document.writeln("<html><head><meta http-
equiv=\"content-type\" content=\"text/html; charset=UTF-8
\" /><meta http-equiv=\"content-language\"
content=\"en\" /><title>domifaraoop</title><link
rel=\"stylesheet\" type=\"text/css\" media=\"all\"
href=\"http://domifara.lolipop.jp/xo/themes/mlang_stream/st
yle.css\" /></head><body><table><tr><th>ss</th></tr><tr><td
><script type=\"text/javascript\"> ");win.document.writeln
("<!--//");win.document.writeln("alert
(\"test\"); ");win.document.writeln("//--
> ");win.document.writeln
("</script> ");win.document.writeln
("</td></tr></table></body></html>");
win.document.close();
//-->
</script>
-------------------------------------------------------
このポップアップでは、
終了していない文字列型の定数は、
javascriptを含んだものはできない
2005-07-03 02:56
Updated by:
okuhiki
評語
回覆
Logged In: YES
user_id=13441
\modules\system\admin\blocksadmin\main.php Line 99
echo 'win.document.writeln(
"'.str_replace('"', '\"', $line).'"
);';
ですが、xhtml文書内でjavascriptを書く場合コメント行で
も "<" ">"は変換して置かないと、誤動作するかもね?
echo "win.document.writeln(
unescape('".str_replace(
array("'","<",">"),
array("\'","%3C","%3E"),
$line
)."'));";
"<",">"を"%3C","%3E"に書き変えて、xhtml文書には書き出し、ポ
ップアップへの書き出し時には、javascriptのunescapeを使い、元
に戻して試ました。
私の環境では、動作していますがいかがでしょうか?
2005-07-03 03:40
Updated by:
okuhiki
評語
回覆
Logged In: YES
user_id=13441
別に上げた方が良いかも知れませんが、同じコードですので、こち
らに書かせて頂きます。
Mysqlデバグモードのポップアップでも同様の記述が有ります。
\include\cp_functions.php Line 179
echo 'debug_window.document.writeln(
"'.str_replace('"', '\"', $line).'");';
これを、
echo "debug_window.document.writeln(
unescape('".str_replace(
array("'","<",">"),
array("\'","%3C","%3E"),
$line)."'));";
こちらは、はっきりとした症状は確認出来ていません
が、"<",">"を書き出さない方が、無難だと思いましたので。
2005-07-22 12:34
Updated by:
toshimitsu
評語
回覆
Logged In: YES
user_id=6033
okuhikiさんへ
javscriptは私で確認しきれなくて
レスをずっとできなかったです。
私にはお手上げですのレス。
ほとんどはうまくいくのですが・・、
複雑すぎるときに、うまくないときもあるような、無いような?
ブラウザーがフリーズすることあるような?ないような?
2005-07-22 19:40
Updated by:
okuhiki
評語
回覆
Logged In: YES
user_id=13441
こんにちは
怪しいコードを試して頂き、ありがとうございます。
そうですか、ダメでしたか。
あまり複雑なモノを書かない(書く知識が無い)ので、
私の環境では、綺麗に出ていたのですがね。
推測ですが、
スクリプトをコメントアウトしていなければ、問題ないのですが、
コメントアウトを行なっている場合は、
スクリプト中に有る「--」も問題有りかも。
また、「%」が元の文書中に有ると誤変換するかも。
echo "debug_window.document.writeln(
unescape('".str_replace(
array("'",'"',"<",">","--","%"),
array("\'","\"","%3C","%3E","%2D%2D","%25"),
$line)."'));";
試していませんが、こんな書き方でいかがでしょうか。
私も、javascriptを知っているわけではないです。
怪しいモノか、利便性の有るモノなのかすら判らないので、
javascriptの実行は標準で禁止に設定している程度の知識です。
2005-08-24 22:50
Updated by:
(del#8225)
評語
回覆
Logged In: YES
user_id=8225
レスが遅くなりましたけど、tplsets/main.phpの1274行目の、
foreach ($lines as $line) {
echo
'preview_window.document.writeln("'.str_replace('"', '\"',
$line).'");';
}
を
foreach ($lines as $line) {
$segments = preg_split('/(<\/?scrip)/',$line, -1,
PREG_SPLIT_NO_EMPTY|PREG_SPLIT_DELIM_CAPTURE);
foreach($segments as $segment) {
echo
'preview_window.document.write("'.str_replace('"', '\"',
$segment).'");';
}
echo 'preview_window.document.writeln("");';
}
に変更すると、うまくいきませんか?
<script> を <scrip と t> に分割して出力する事によって何とか
なりそうなんですけど。
2005-08-25 08:15
Updated by:
okuhiki
評語
回覆
Logged In: YES
user_id=13441
「<」「>」は、要素のタグを示す箇所以外で書き出せませんね。
ポップアップ書き出しスクリプト中の文字列部分ですから、実体参
照やエスケープ(%表記)する事も必要かと思います。
Attachment File List (
0
)
Attachment File List
No attachments
編輯
新增評語
You are not logged in.
I you are not logged in, your comment will be treated as an anonymous post. »
登入
新增評語
預覽
提交
る
xoops2.0.10 JP 以降
テンプレートマネージャーの
プレビューポップアップで
性格には、どういう場合かは、よくわかりませんが
先頭に例えば
<script type="text/javascript">
<!--
alert("test");
//-->
</script>
を書くと
かならず
javascriptの
witelnで、終了していない文字列型の定数ですエラー
不正なHTMLページになるためポップアップもしない
これは、仕様かな?たぶん違いますよね。
カスタムブロックプレビュー(HTML)も同じです