使用window.open()传递&符号

时间:2014-01-27 00:55:04

标签: javascript wordpress window.open

我正在尝试执行此功能:

var form = window.open(www.example.com/?param1='+ value1 +'& param2 ='+ value2,'1_blank',params);

但问题是,那是用以下网址打开一个新窗口:

www.example.com/?param1=XXX#038;param2=YYY

虽然我需要打开以下网址:

www.example.com/?param1=XXX&param2=YYY

如何强制&符号作为符号符号而不是更改为unicode标签?

顺便说一句,我正在尝试在WordPress中执行此操作,并且不确定这是否是Wordpress问题是一个JS问题。

2 个答案:

答案 0 :(得分:1)

使用带有&符号的window.open对我来说很好。我认为您遇到的问题是value1value2中的一些特殊字符。

因此请使用encodeURIComponent。它内置于JavaScript中。像这样使用它:

var form = window.open(www.example.com/?param1=' + encodeURIComponent(value1) + '&param2=' + encodeURIComponent(value2),'1_blank', params);

请注意:在&param2之后和等于(“=”)符号之前有一个空格(“”)。这将导致参数不被发送。

这是一个奇怪的问题,所以我只是抛出一个想法。它可能只是一个浏览器问题。

答案 1 :(得分:0)

如果您将Javascript放在页面/帖子的内容中,则Wordpress会通过名为“wptexturize”的过滤器运行文本。这将解释您的&符号被替换。

如果是这种情况,您可以从主题的functions.php文件中删除过滤器:

remove_filter( 'the_content', 'wptexturize' );

我希望有所帮助。