2012-11-26 22 views
1

我需要一些Greasemonkey脚本的帮助。我试图替换HTML文档中的一些文本,并从该网站中删除一个JavaScript函数。替换目标网页中的代码的脚本

我要重写的表达是needCaptcha: trueneedCaptcha: false。我想将它删除HTML的这一部分:

checkConfig = { 
    empty : "Enter the characters in the image", 
    error : "Type the characters you see"   
}, 

我用这个脚本,但它不工作:

{ 
    document.body.innerHTML = document.body.innerHTML.replace('needCaptcha: true ', 'needCaptcha: false'); 

    document.body.innerHTML = document.body.innerHTML.replace('checkConfig = { 
     empty : "Enter the characters in the image"/, 
     error : "Type the characters you see"' 
    },) 
} 

任何想法?

好的,非常感谢你的回答我什么更好我们正在尝试做的明白。但是,您的脚本无法使用,只要您可以访问网上订购网页,您就可以在这里找到网页,这并不容易。

我想验证码在当地检查,所以我们应该能够绕过使用JavaScript。

总之,在这里你有网站的部分代码作为参考:

script type="text/javascript"> 
    var placeOrderConfig = { 
     rate : "0.95", 
     userType : "cnfm", 
     editAddressUrl : "mailing_address.htm", 
     editAddressUrlNoMember : "mailing_address_no_member.htm" , 
     changeAddressUrl : "change_mailing_address.htm", 
     quickZoneUrl : "quickLoginRegister.htm?loginReturn=", 
     editAddressWinTitle : "Edit Shipping Address", 
     changeAddressWinTitle : "Change Shipping Address", 
     addAddressWinTitle : "Add New Shipping Address", 
     defaultMessage : "Please enter your message to the supplier here", 
     remoteCheckEmailUrl : "$usMyalibabaServer/user/join/CheckEmail.htm", 
     noMemberAction : "noMemberResult.htm" , 
     needCheckCode: true  }, 
    productData = [[602092306,"wholesaleProduct","promotion_gaga","US","",1,"CPAM","14%3A173%23blue%3B5%3A100014064",200282334]], 
    quantityConfig = { 
     minErrorText : 'Please enter a Min. Order quantity that is <span id="min"></span> or more.', 
     maxErrorText : 'Please enter a number that is <span id="max"></span> or less.' 
    }, 
    checkConfig = { 
     emptyErorText : "Enter the characters you see in the image", 
     errorText : "Type the characters you see in the picture"    
    }, 
    backHistoryUrl = ""; 
</script> 
+0

我刚刚格式化了您发布的代码,第二个块在语法上无效。你确定这是你使用的确切代码吗? – bfavaretto

+0

不要过多地关注我的用户脚本,这是一个糟糕的尝试来创建一个可行的脚本(当然,它不会)。 – Pcsl

+0

我们确实需要看到目标页面才能理解这一点。链接到它。或者使用firefox保存页面,然后将htm文件粘贴到http://pastebin.com/并链接到该页面。 –

回答

2

几件事情:

  1. 你正在尝试更换不是HTML,但JavaScript的变量。

  2. 不要使用innerHTML(几乎永远)。它会破坏很多网页,特别是如果你在document.body上使用它。

  3. 您尝试更改的脚本甚至可能不在身体中设置,而是在<head>中设置,因此策略可能无效。

  4. 更换JavaScript的文本,它已被加载后通常没有效果时,JavaScript已经被解析到内存后。

  5. 它可能无法修复完全基于什么(目前)的问题的JavaScript。 JS变量可能在范围内不可及。

当且仅当JavaScript变数全球,那么这段代码将工作:

// ==UserScript== 
// @name  _YOUR_SCRIPT_NAME 
// @include http://YOUR_SERVER.COM/YOUR_PATH/* 
// @grant none 
// ==/UserScript== 

window.needCaptcha = false; 
window.checkConfig = {}; 


为别的,我们需要看到更多的(更)目标页面的代码。链接到它。

+0

好吧,我已经编辑了我的问题更多的细节。 – Pcsl

+0

这很好,但我们需要定义'needCaptcha'的'