您好,请教您一个JS跳转问题,多谢

jamesyou 发布于 2013/04/28 13:27
阅读 940
收藏 0

@爱国者 你好,想跟你请教个问题:看了您http://my.oschina.net/aiguozhe/blog/53890这篇关于JS跳转的文章,想请教您一个问题,现在我在WORDPRESS里每篇文章的外链都用个一个JS跳转页,代码如下:

<?php      
/*******跳转模板*******/     
global $wp_rewrite,$wp_query;      
//从请求的地址中获取文章ID      
if( isset($wp_query->query_vars['pid']) && $wp_query->query_vars['pid']!='' )      
    $post_id = $wp_query->query_vars['pid'];      
else     
    $post_id = 0;      
     
//如果文章ID存在      
if( $post_id ){      
    //通过文章ID获取要跳转的站外链接--自定义字段      
    $buy_link = get_post_meta($post_id,'_buy_link',true);   
    $buy_link = htmlspecialchars_decode($buy_link);//将html实体换回预定义字符   
    $buy_link = trim($buy_link);   
    $buy_link = addhttp(trim($buy_link));   
    if($buy_link){ ?>      
        <?php //跳转到对应的链接?>      
        <script type="text/javascript">window.location.href="<?php echo $buy_link;?>";</script>      
    <?php }else{ ?>      
        <?php //如果没有设置跳转到奥首页?>      
        <script type="text/javascript">window.location.href="<?php echo home_url();?>";</script>      
    <?php }      
}else{ ?>      
<?php //无ID则跳转到首页 ?>      
    <script type="text/javascript">window.location.href="<?php echo home_url();?>";</script>      
<?php } ?>

现在想在跳转的同时执行一段JS统计代码,代码如下

<script type="text/javascript">
(function(win,doc){
var s = doc.createElement("script"), h = doc.getElementsByTagName("head")[0];
if (!win.alimamatk_show) {
s.charset = "gbk";
s.async = true;
s.src = "http://a.alimama.cn/tkapi.js";
h.insertBefore(s, h.firstChild);
}
var o = {
pid: "mm_3288888_3424444_11476547",
appkey: "",
unid: ""
}
win.alimamatk_onload = win.alimamatk_onload || [];
win.alimamatk_onload.push(o);
})(window,document);
</script>

不知道为何,不论统计代码加在哪个位置都不会执行,想请教如何才能让跳转时执行统计代码呢?多谢

加载中
0
mj4738
mj4738

"跳转的同时执行一段JS统计代码 ", 是指跳转前执行还是跳转后执行?

貌似你跳转前没有执行那段js统计代码吧

如果是跳转后执行。。。这个我没有试过,跳转前执行应该是可以的

0
myottf
myottf
@爱国者 你好,我也有同样的问题,请问应该怎么解决?这是淘点金的代码,但是不管用。
j
jamesyou
回复 @爱国者 : 如何调用呢,直接放在这段代码前好像无效
mj4738
mj4738
是不是应该在window.location.href="xxx"; 之前调用一下那段统计代码?
0
j
jamesyou

引用来自“爱国者”的答案

"跳转的同时执行一段JS统计代码 ", 是指跳转前执行还是跳转后执行?

貌似你跳转前没有执行那段js统计代码吧

如果是跳转后执行。。。这个我没有试过,跳转前执行应该是可以的

你好,我在上面的跳转文件试加了下面那段代码,好像无效
0
mj4738
mj4738

引用来自“jamesyou”的答案

引用来自“爱国者”的答案

"跳转的同时执行一段JS统计代码 ", 是指跳转前执行还是跳转后执行?

貌似你跳转前没有执行那段js统计代码吧

如果是跳转后执行。。。这个我没有试过,跳转前执行应该是可以的

你好,我在上面的跳转文件试加了下面那段代码,好像无效

我的意思是这样:

<script>
   function redirect(){
     // 调用统计代码, 然后再跳转
     windows.location.href="xxx";
   }
   redirect();
</script>

0
myottf
myottf
@爱国者 ,具体应该怎么调用,能详细讲解下吗?谢谢
0
myottf
myottf
是这样吗?
0
myottf
myottf
<script>
   function redirect(){
     // 调用统计代码, 然后再跳转
       <script type="text/javascript">
       (function(win,doc){
       var s = doc.createElement("script"), h = doc.getElementsByTagName("head")[0];
       if (!win.alimamatk_show) {
       s.charset = "gbk";
       s.async = true;
       s.src = "http://a.alimama.cn/tkapi.js";
       h.insertBefore(s, h.firstChild);
       }
       var o = {
       pid: "mm_148148954_2126954_11211661",
       appkey: "",
       evid:"",
       rd:1,
       unid: ""
       }
       win.alimamatk_onload = win.alimamatk_onload || [];
       win.alimamatk_onload.push(o);
       })(window,document);
       </script>
       windows.location.href="xxx";
   }
   redirect();
</script>
0
j
jamesyou

引用来自“爱国者”的答案

引用来自“jamesyou”的答案

引用来自“爱国者”的答案

"跳转的同时执行一段JS统计代码 ", 是指跳转前执行还是跳转后执行?

貌似你跳转前没有执行那段js统计代码吧

如果是跳转后执行。。。这个我没有试过,跳转前执行应该是可以的

你好,我在上面的跳转文件试加了下面那段代码,好像无效

我的意思是这样:

<script>
   function redirect(){
     // 调用统计代码, 然后再跳转
     windows.location.href="xxx";
   }
   redirect();
</script>

直接放入JS统计代码不行,浏览器会直接输出以下字符,不会跳转了,要怎样调用JS的统计代码呢?多谢
windows.location.href="xxx";
   }
   redirect();
0
mj4738
mj4738

引用来自“myottf”的答案

<script>
   function redirect(){
     // 调用统计代码, 然后再跳转
       <script type="text/javascript">
       (function(win,doc){
       var s = doc.createElement("script"), h = doc.getElementsByTagName("head")[0];
       if (!win.alimamatk_show) {
       s.charset = "gbk";
       s.async = true;
       s.src = "http://a.alimama.cn/tkapi.js";
       h.insertBefore(s, h.firstChild);
       }
       var o = {
       pid: "mm_148148954_2126954_11211661",
       appkey: "",
       evid:"",
       rd:1,
       unid: ""
       }
       win.alimamatk_onload = win.alimamatk_onload || [];
       win.alimamatk_onload.push(o);
       })(window,document);
       </script>
       windows.location.href="xxx";
   }
   redirect();
</script>
<script> 
  
     // 调用统计代码, 然后再跳转       
       (function(win,doc){ 
       var s = doc.createElement("script"), h = doc.getElementsByTagName("head")[0]; 
       if (!win.alimamatk_show) { 
       s.charset = "gbk"; 
       s.async = true; 
       s.src = "http://a.alimama.cn/tkapi.js"; 
       h.insertBefore(s, h.firstChild); 
       } 
       var o = { 
       pid: "mm_148148954_2126954_11211661", 
       appkey: "", 
       evid:"", 
       rd:1, 
       unid: "" 
       } 
       win.alimamatk_onload = win.alimamatk_onload || []; 
       win.alimamatk_onload.push(o); 
  
       windows.location.href="xxx"; 
       })(window,document); 
   
</script>

0
myottf
myottf

@爱国者 ,我刚把go.php中加上了你的代码,但是不行,点直达链接后,不能跳转,请你看下

<?php      
/*******跳转模板*******/     
global $wp_rewrite,$wp_query;      
//从请求的地址中获取文章ID      
if( isset($wp_query->query_vars['pid']) && $wp_query->query_vars['pid']!='' )      
        $post_id = $wp_query->query_vars['pid'];      
else     
        $post_id = 0;      
         
    //如果文章ID存在      
if( $post_id ){      
        //通过文章ID获取要跳转的站外链接--自定义字段      
        $buy_link = get_post_meta($post_id,'_buy_link',true);   
        $buy_link = htmlspecialchars_decode($buy_link);//将html实体换回预定义字符   
        $buy_link = trim($buy_link);   
        $buy_link = addhttp(trim($buy_link));   
        if($buy_link){ ?>      
            <?php //跳转到对应的链接?>      
            <script>
 
     // 调用统计代码, 然后再跳转       
       (function(win,doc){
       var s = doc.createElement("script"), h = doc.getElementsByTagName("head")[0];
       if (!win.alimamatk_show) {
       s.charset = "gbk";
       s.async = true;
       s.src = "http://a.alimama.cn/tkapi.js";
       h.insertBefore(s, h.firstChild);
       }
       var o = {
       pid: "mm_148148954_2126954_11211661",
       appkey: "",
       evid:"",
       rd:1,
       unid: ""
       }
       win.alimamatk_onload = win.alimamatk_onload || [];
       win.alimamatk_onload.push(o);
 
       windows.location.href="<?php echo $buy_link;?>";
       })(window,document);
   
</script>   
        <?php }else{ ?>      
            <?php //如果没有设置跳转到首页?>      
            <script type="text/javascript">window.location.href="<?php echo home_url();?>";</script>      
        <?php }      
    }else{ ?>      
    <?php //无ID则跳转到首页 ?>      
        <script type="text/javascript">window.location.href="<?php echo home_url();?>";</script>      
<?php } ?>   

返回顶部
顶部