zoukankan      html  css  js  c++  java
  • 听小说 JS Hook

    从听了EBC5的几篇《异闻录》之后,有点上瘾了。无奈没找到其他篇章,Google以下吧。终于在“龙音阁”找到了20篇,虽然少吧不过还能听一段时间。不过这个正如其他有声小说网站的做法,先让你听几篇。然后,页面提示让充值。不过呢,这个站点的做法是使用(alert())弹出提示之后,页面跳转至登录页面让充值。无语~~禁用Cookie,什么的还是无济于事。突然想到 Hook(钩子),使用过Hook编程的朋友们会知道这个东东是做什么的,不知道的呢。Google以下吧。
            我想,可以使用JS hook来重写页面中的js逻辑,禁用之前的提示。找了好久,还是没有找到提示的地方。无奈保存页面源码,查找相应的js。后来找到在Play函数中找到相应的逻辑,不过没看出什么意思。只是觉得有个地方的判断很不爽,就将其禁用了。
            源代码如下:

    代码
     1 //播放音频
     2         function play(){
     3           if(SongList.selectedIndex < 0) alert('请选择你要播放的章节!');
     4           else{
     5           var varvar,person,collect,song,url,mfzhangjie;
     6           mfzhangjie = document.form00.mfzhangjie.value;
     7           varvar = SongList.options[SongList.selectedIndex].value.split("|");
     8           url = varvar[0];song = varvar[1];collect = varvar[2];person = varvar[3];SongID = varvar[4];
     9           TEXTGeci.innerHTML = "<iframe name=\"I5\" height=\"340\" src=\"/pp/Geci.asp?id=" + SongID + "\" border=\"0\" frameborder=\"0\" marginwidth=\"1\" marginheight=\"1\" width=\"100%\"></iframe>";
    10           MusicTitle.innerHTML = song + "--" + collect + mfzhangjie;
    11           upload.value=SongID;
    12           if (mfzhangjie > 3)
    13           {
    14            Exobud.URL = "";Exobud.controls.stop();
    15           }else{
    16            Exobud.URL = url;Exobud.controls.play();showTLab();
    17           } 
    18           return;
    19           }
    20         }
    21 

    改写后的代码:

     1 play=function(){
     2      if(SongList.selectedIndex < 0) alert('请选择你要播放的章节!');
     3      else{
     4         var varvar,person,collect,song,url,mfzhangjie;
     5         mfzhangjie = document.form00.mfzhangjie.value;
     6         varvar = SongList.options[SongList.selectedIndex].value.split("|");
     7         url = varvar[0];song = varvar[1];collect = varvar[2];person = varvar[3];SongID = varvar[4];
     8         TEXTGeci.innerHTML = "<iframe name=\"I5\" height=\"340\" src=\"/pp/Geci.asp?id=" + SongID + "\" border=\"0\" frameborder=\"0\" marginwidth=\"1\" marginheight=\"1\" width=\"100%\"></iframe>";
     9         MusicTitle.innerHTML = song + "--" + collect + mfzhangjie;
    10         upload.value=SongID;
    11         
    12             Exobud.URL = url;Exobud.controls.play();showTLab();
    13         
    14         return;
    15      }
    16 };

    下面介绍一下方法:

    例如页面中存在这样的函数:
            function showData(){
                alert("This is the message from showData!");
            }

            我们可以使用以下脚本重写此方法(在IE8中的Js Console中执行下列脚本,来复写页面中的同名函数):
            showData=function(){
                alert("这是复写的方法之后的弹出的内容");
            }
            在页面中调用showData函数,将会弹出“这是复写的方法之后的弹出的内容”的提示。不信可以试试哦。嘿嘿~~

                    本人使用的是IE8,就打开IEDeveloper ToolBar。执行了复写的方法,发现还真的管用了。执行脚本之后,可以照常听小说咯.o(∩_∩)o 哈哈!

    如下图:

  • 相关阅读:
    程序员如何利用空闲时间挣零花钱
    常见的数据交互之跳转页面传值
    一个能让cin和scanf 一样快的方法:
    HDU 4901 DP
    POJ 2823 线段树 Or 单调队列
    POJ 3264 线段树 ST
    POJ 3468 线段树+状压
    POJ 2777 线段树
    QQ 临时会话+图标 HTML代码
    POJ 1463 Strategic game
  • 原文地址:https://www.cnblogs.com/netwenchao/p/1723682.html
Copyright © 2011-2022 走看看