{希哲15年2月16日の開発}{半角スペースが + に置き換えられてしまう不具合について}{%20}{原因判明}{@URI.dcd()}{希哲15年2月16日の進捗時限}{希哲15年2月16日の進捗}{希哲15年2月16日}{アドレスバー}{修正完了}=}(46)

{希哲15年2月16日3歩 K#F85E/A-E74C-7917}

輪郭に空白名があると検索→新規作成の際にASCII加算符に置き換えられてしまう」という不具合報告について,ようやく尻尾が掴めた気がしたので再調査に入る。

原因判明修正完了

結局,decodeURIComponent()+半角スペース置換しないというよく知られた落とし穴のせいだった。

decodeURIComponent() に渡す前に置換処理をしておくというのが定石らしいので @URI.dcd()修正

+ と半角スペースという時点で URI 符号化絡みの問題なのは明らかだったが,最初の調査では交度論理的問題が見つからず,再現性明確ではなかった。

当然,全知検索窓に直接入力すれば問題なく,Firefox ではアドレスバーURI を直接編集して半角スペースを含んだ検索をしても問題なかった。問題は,アドレスバーに直接検索語を入力した場合で,この場合は %20 ではなく + に半角スペースが置換され,これが JavaScript 側ではそのまま通っていた。

更に問題をややこしくしていたのは,捌き手では問題なく + を半角スペースに復号していたため,そのような検索をすると表示上も描出も問題なく行われるが JS で制御している描出後の転送先のみ + が残った検索になっていたことだった。

さっき何となく半角スペースを含んだ検索語から描出したことで再現し,交度を見直してもやはり問題が分からず,まさかと思って decodeURIComponent()仕様確認したところで原因判明した。

今後のためにもなる勉強になって良かった。


{JavaScript}=}(1)
{希哲14年9月24日11歩}{.x2_b}{.hl_b}{Aejs}{JavaScript}{手法}{着想}{画像}{補完}{img 要素}=}(11)

{画像補完 K#F85E/A-5B28-A5BA}

HTML では最小限の img 要素.hl_bハイライト有り),.x2_b高解像度有り)などの要素分類名を与え,JavaScript で自動的に補完する手法

希哲14年9月24日11歩Aejs機能として着想


{希哲14年7月13日}{希哲14年7月13日のツイスト}{JavaScript}{ツイスト}{対応}=}(5)
{テキストの取得}{innerText}{@_elm.ptp.ctt()}{JavaScript}=}(4)
{JavaScript}=}(1)
{JavaScript}=}(1)
{JavaScript}=}(1)
{JavaScript}=}(1)
{JavaScript}=}(1)