查询字符串数据被截断

时间:2010-11-19 作者:Scott B

当我在下面jQuery代码生成的窗口上选中“view source>frame info”时,它会在;类型=图像。我正在正确地对符号进行url编码,对吗?

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;
});

1 个回复
最合适的回答,由SO网友:hakre 整理而成

正如您所问的那样,您是否正确地对符号进行了url编码,那么我的回答是:没有。

您正在调用一个javascript函数,而不是以x(ht)ml的形式输出某些内容。因此,您不需要编码&&amp;. 函数所需的URL不是包含xml编码URL的字符串。

但这可能是吹毛求疵。

这不起作用的原因是,tb\\u show()在第一个TB_ 它会在该URL中找到,并且仅为iframe src保留该字符串之前的URL部分。所以你需要移动TB_iframe=true 到参数的末尾。这应该可以做到:

tb_show(\'\', \'media-upload.php?post_id=\'+post_id+\'&amp;type=image&amp;wpe_idCustomAttachment=true&amp;TB_iframe=true\');
顺便说一句,wordpress是开源的。您可以在源代码中查找tb\\u show()函数,并查看发生或不发生某些事情的原因。这有助于找出具体的东西。我没有做任何其他事情:)

结束

相关推荐

测试jQuery或Prototype是否由另一个插件排队?

在我的插件中,我想测试jQuery或Prototype(或两者)是否将由另一个插件加载。所以,有wp_enqueue_script(\'jquery\') 或wp_enqueue_script(\'prototype\') 已调用。我在文件中有适合我的插件的代码plugin.prototype.js 和plugin.jquery.js 如果原型已排队,我的插件将使用plugin.prototype.js. 这样我就避免了在站点中加载不必要的内容。如果两者都没有加载,我将排队,以较小者为准。如何测试以查看已