it-swarm-ja.com

クエリ文字列データが切り捨てられる

以下のjQueryコードによって生成されたウィンドウで[ソースの表示]> [フレーム情報]をチェックすると、&type = imageのクエリ文字列が切り捨てられます。アンパサンドを正しくエンコードしているのですよね。

Address: ...wp-admin/media-upload.php?post_id=28&type=image&

function wpe_customImages($initcontext)
{
global $post;
?>
<script type="text/javascript">
jQuery(document).ready(function() {
var fileInput = '';
jQuery('#wpe-uploadAttachments').click(function() {
    fileInput = jQuery(this).prev('input');
    formfield = jQuery('#upload_image').attr('name');
    post_id = jQuery('#post_ID').val();
    tb_show('', 'media-upload.php?post_id='+post_id+'&amp;type=image&amp;TB_iframe=true&amp;wpe_idCustomAttachment=true');
    return false;
});
2
Scott B

あなたがもっと濡れているかどうかと尋ねたので、あなたは正しいアンパサンドのためのURLエンコードをしました、それから私の答えは:.

あなたはJavaScript関数を呼んでいます、あなたはx(ht)mlとして何かを出力していません。したがって、&&amp;としてエンコードする必要はありません。この関数は、xmlでエンコードされたURLを含む文字列ではなく、URLを予期しています。

しかし、それはおそらくニットピッキングです。

これがうまくいかないのは、tb_show()がそのURLで見つかった最初のTB_の後にあるものはすべて切り捨て、その文字列の前のURLの部分だけがiframe srcに保存されるからです。そのため、TB_iframe=trueをパラメータの末尾に移動する必要があります。これでうまくいくはずです。

tb_show('', 'media-upload.php?post_id='+post_id+'&amp;type=image&amp;wpe_idCustomAttachment=true&amp;TB_iframe=true');

ところで、ワードプレスはオープンソースです。 tb_show()関数をソースで見つけて、何かが起こっているのかどうかを調べてください。これは特定のものを見つけるのに役立ちます。私は他に何もしませんでした:)

3
hakre