您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Add Link To Check An Address
当前为
- // ==UserScript==
- // @name TradeMe Address Check
- // @namespace https://greasyfork.org/scripts/3143-address-check
- // @version 0.31
- // @description Add Link To Check An Address
- // @include http://www.trademe.co.nz/MyTradeMe/Delivery/SendDeliveryAddress.aspx*
- // @include http://www.trademe.co.nz/MyTradeMe/Sell/Sold.aspx*
- // @copyright public domain
- // @author Godfrey Livingstone godfrey@satelliteshop.co.nz
- // @run-at document-end
- // @require https://greasyfork.org/scripts/2722-gm-config-mod-library/code/gm_config_mod%20library.js?version=7536
- // @grant GM_addStyle
- // @grant GM_getValue
- // @grant GM_log
- // @grant GM_registerMenuCommand
- // @grant GM_setValue
- // ==/UserScript==
- // v0.31: Remove all jquery so that it works with GM 2.0 aand TM 3.8
- if (window.top != window.self) { //-- Don't run on frames or iframes
- return;
- }
- // replace trademe's JS error handler
- window.onerror=function(msg, url, linenumber){
- console.log('Error message: '+msg+'\nURL: '+url+'\nLine Number: '+linenumber);
- return true;
- };
- //
- // Delivery Address
- // http://www.trademe.co.nz/MyTradeMe/Delivery/SendDeliveryAddress.aspx?asid=<purchase id>
- //
- // Delivery Address
- // Phone Number
- // Message
- //
- // Purchase Summary
- // http://www.trademe.co.nz/MyTradeMe/PurchaseSummary.aspx?asid=<purchase id>&isBuyer=false
- //
- // Shipping Option
- //
- // Listing
- // http://www.trademe.co.nz/Browse/Listing.aspx?id=<Listing ID>
- //
- // Title
- // Photo Link
- //
- // Photo
- // http://images.trademe.co.nz/photoserver/tq/263983945.jpg
- //
- // separate function to add '!' to encodeURIComponent
- // also removes hard returns
- function encodeURIfix(str) {
- return encodeURIComponent(str).replace(/!/g,'%21').replace(/%0A/g,'%20');
- }
- // Prototype for the callback function - remember which purchase
- Function.prototype.bind = function (thisObject) {
- var method, oldargs, newargs;
- method = this;
- oldargs = [].slice.call(arguments, 1);
- return function () {
- newargs = [].slice.call(arguments);
- return method.apply(thisObject, oldargs.concat(newargs));
- };
- };
- function checkAddressLink(doc, delivery_address){
- var add_html, add_array, add_str, encoded_add, namestr, encoded_name, ph, encoded_ph, message, encoded_message, encoded_addassent, link_url;
- add_html = delivery_address.innerHTML;
- add_array = add_html.split("<br>");
- add_str = add_array.slice(1, -1).join(', ');
- encoded_add = encodeURIfix(add_str);
- namestr = add_array[0];
- encoded_name = encodeURIfix(namestr);
- ph = doc.getElementById("PhoneNumber");
- encoded_ph = "";
- if (ph) {
- encoded_ph = encodeURIfix(ph.innerHTML);
- }
- message = doc.getElementById("Message");
- encoded_message = "";
- if (message){
- encoded_message = encodeURIfix(message.innerHTML);
- }
- encoded_addassent = encodeURIfix(add_html);
- link_url = "http://www.addresscheck.co.nz/?address=";
- link_url = link_url + encoded_add + '&name=' + encoded_name + '&phone=' + encoded_ph + '&address_as_sent=' + encoded_addassent + '&message=' + encoded_message;
- return link_url;
- }
- function addSoldDeliveryCheck(dL) {
- var doc, delivery_address, link_url, add_image, add_link, newTr, td_start, td_end;
- //var purchase_summary_url = 'http://www.trademe.co.nz/MyTradeMe/PurchaseSummary.aspx?asid=' + pReference + '&isBuyer=false';
- //turn the response text into a dom object
- doc = document.implementation.createHTMLDocument("delivery address");
- doc.documentElement.innerHTML = dL.target.responseText;
- delivery_address = doc.getElementById("DeliveryAddress");
- if ( delivery_address ) {
- link_url = checkAddressLink(doc, delivery_address);
- add_image = '<a id="AddressImageCheckLink" target="_blank" href="' + link_url + '"><img width="18" height="17" alt="" style="vertical-align: middle; margin-right:5px; border:0;"src="/images/1pixel.gif"></a>';
- add_link = '<a id="AddressCheckLink" target="_blank" href="' + link_url + '"> * Check address * </a>';
- newTr = document.createElement("tr");
- td_start = '<td style="vertical-align: middle;"></td><td style="color: #666;" align="left"><small>';
- // td_start = '<td style="vertical-align: middle;"><img alt="" src="/images/my_trademe/tick2.gif"></td><td style="color: #666;" align="left"><small>';
- td_end = '</small></td>';
- newTr.innerHTML = td_start + add_link + td_end;
- this.deliveryDetails.parentNode.parentNode.parentNode.parentNode.appendChild(newTr);
- }
- doc.parentNode.removeChild(doc);
- }
- // Are we on the SendDeliveryAddress page?
- var delivery_address, link_url, add_image, add_link, newDiv;
- delivery_address = document.getElementById("DeliveryAddress");
- if ( delivery_address ) {
- link_url = checkAddressLink(document, delivery_address);
- add_image = '<a id="AddressImageCheckLink" target="_blank" href="' + link_url + '"><img width="18" height="17" alt="" style="vertical-align: middle; margin-right:5px; border:0;"src="/images/1pixel.gif"></a>';
- add_link = '<a id="AddressCheckLink" target="_blank" href="' + link_url + '">Check address</a>';
- newDiv = document.createElement("div");
- newDiv.setAttribute("style", "font-size: 12px; margin-top: 10px; padding: 0;");
- newDiv.innerHTML = add_image + add_link;
- delivery_address.parentNode.appendChild(newDiv);
- }
- // Are we on the Sold Page and have any 'Delivery address' details been provided?
- var frm, i, j, l, m, els, els2, el, el2, pReference, oReq, auction_array;
- frm = document.getElementById("form1");
- if (frm) {
- els = frm.getElementsByTagName("a");
- for ( i = 0, l = els.length; i < l; i++) {
- el = els[i];
- if (el.innerHTML === 'Delivery address') {
- pReference = el.href.replace(/.*asid=/i, '');
- oReq = new XMLHttpRequest();
- oReq.open("GET", el.href);
- // register the event handler
- oReq.addEventListener("load", addSoldDeliveryCheck.bind({
- deliveryDetails: el
- }), true);
- oReq.send();
- }
- }
- els2 = frm.getElementsByTagName("dt");
- for ( j = 0, m = els2.length; j < m; j++) {
- el2 = els2[j];
- if (el2.innerHTML === "Listing #:") {
- auction_array = el2.nextSibling.innerHTML.split(";");
- console.log(auction_array[0]);
- console.log(auction_array[1]);
- el2.nextSibling.innerHTML = auction_array[0] + ';<a target="_blank" href="http://www.trademe.co.nz/Browse/Listing.aspx?id=' + auction_array[1] + '">' + auction_array[1] + '</a>';
- }
- }
- }