1

Greasemonkeyスクリプトについてサポートが必要です。HTMLドキュメントの一部のテキストを置き換えて、そのWebサイトからjavascript関数を削除しようとしています。

書き直したい式は needCaptcha: true にありneedCaptcha: 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"'
    },)
}

何か案が?

わかりました、ご回答ありがとうございます。私たちがやろうとしていることをよく理解しています。ただし、スクリプトは機能しませんでした。プレースオーダーのWebページにアクセスでき、それが簡単ではない限り、スクリプトを見つけることができるWebページがあります。

キャプチャはローカルでチェックされるので、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>
4

1 に答える 1

2

いくつかのこと:

  1. 置き換えようとしているのは HTML ではなく、javascript 変数です。

  2. 使用しないでください (ほとんど使用しませんinnerHTML)。特に で使用すると、多くの Web ページが破壊されますdocument.body

  3. 変更しようとしているスクリプトは、本体ではなく に設定されている<head>可能性があるため、その戦術はとにかく効果がない可能性があります。

  4. JavaScript のテキストがロードされた後に置き換えても、通常は何の効果もありません。JavaScript は既にメモリに解析されています。

  5. (現在)質問にあるものだけに基づいてJavaScriptを修正することはできない場合があります。JS 変数は、スコープ内で手の届かないところにある可能性があります。

JavaScript 変数がglobalである場合に限り、次のコードが機能します。

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

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


それ以外については、ターゲット ページのコードをもっと (もっと) 見る必要があります。それにリンクします。

于 2012-11-26T12:42:27.577 に答える