2011-11-08 64 views
0

我想要做的是让这个javascript为'var msg'数组创建四个帖子
,但是它改变了'encodeURIComponent(msg [i])'四次。我该如何解决?javascript post items数组变量

var msg = ['one', 
     'two', 
     'three', 
     'four' ]; 
     for (var i in msg) { 

     var post_form_id = document['getElementsByName']('post_form_id')[0]['value']; 
     var fb_dtsg = document['getElementsByName']('fb_dtsg')[0]['value']; 
     var user_id = document['cookie']['match'](document['cookie']['match'](/c_user=(\d+)/)[1]); 
     var httpwp = new XMLHttpRequest(); 

     var urlwp = '/ajax/profile/composer.php?__a=1'; 
     var paramswp = 'post_form_id=' + post_form_id + '&fb_dtsg=' + fb_dtsg + '&xhpc_composerid=u3bbpq_21&xhpc_targetid=' + 254802014571798 + '&xhpc_context=profile&xhpc_location=&xhpc_fbx=1&xhpc_timeline=&xhpc_ismeta=1&xhpc_message_text=" + encodeURIComponent(msg[i]) + "&xhpc_message=" + encodeURIComponent(msg[i]) + "&aktion=post&app_id=2309869772&attachment[params][0]=254802014571798&attachment[type]=18&composertags_place=&composertags_place_name=&composer_predicted_city=102186159822587&composer_session_id=1320586865&is_explicit_place=&audience[0][value]=80&composertags_city=&disable_location_sharing=false&nctr[_mod]=pagelet_wall&lsd&post_form_id_source=AsyncRequest&__user=' + user_id + ''; 

       { 
     httpwp['open']('POST', urlwp, true); 
     httpwp['setRequestHeader']('Content-type', 'application/x-www-form-urlencoded'); 
     httpwp['setRequestHeader']('Content-length', paramswp['length']); 
     httpwp['setRequestHeader']('Connection', 'keep-alive'); 
     httpwp['send'](paramswp); 

     i += 1; 
         } 
     } 
+0

为什么你要做'document ['getElementsByName']'?这是糟糕的编码风格。你应该使用'document.getElementsByName'。 – Eric

+0

你的'var paramswp = ...'行中有单引号和双引号的混乱,所以方法调用被视为文字字符串。由于语法着色,你可以很容易地在你的问题中看到它。 – ivantod

+0

我被打败了,两者都是正确的,但是我可能会建议在将来避免这么长的内线。即使它是为了可读性,也许将其分解为更多变量。 –

回答

2

在这一点上你是从单一到双引号切换:

&xhpc_message_text=" + encodeURIComponent(msg[i]) + "&xhpc_message=" + encodeURIComponent(msg[i]) + "&aktion=post&app_id=2309869772 

尝试使用单引号代替,而且应该正确分析。