2

我正在尝试将访问者发送到http://www.facebook.com/plugins/comments.php?href=http://google.com?c

给出错误

评论插件需要一个href参数。

这部分渲染正确: http: //www.facebook.com/plugins/comments.php

但是问号后面的东西没有被包括在内

<script>
function go(){
    var uri = 'http://www.facebook.com/plugins/comments.php' 
        + encodeURI('?href=http://google.com?c');

    window.frames[0].document.body.innerHTML = 
        '<form target="_parent" method="get" action="' 
        + uri 
        + '"></form>';
    window.frames[0].document.forms[0].submit();
}    
</script>
<iframe onload="window.setTimeout('go()', 99)" src="about:blank" style="visibility:hidden"> </iframe>?
4

2 回答 2

1

改成:

var uri = 'http://www.facebook.com/plugins/comments.php?' 
    + encodeURIComponent('href=http://google.com?c');

如果您对第一个进行编码,?则它不再用于将 URL 与其参数分开。

于 2012-11-22T00:12:00.657 回答
0

只有查询的键和值应该被编码,而不是 ?,& 或 =,因为这些是构成查询的字符。

var uri = 'http://www.facebook.com/plugins/comments.php?href=' 
    + encodeURIComponent('http://google.com?c');
于 2012-11-22T04:35:57.050 回答