Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Починить пользовательский скрипт / split и сравнение (https://javascript.ru/forum/events/73824-pochinit-polzovatelskijj-skript-split-i-sravnenie.html)

LeoBB 18.05.2018 16:47

Починить пользовательский скрипт / split и сравнение
 
Здравствуйте,

есть пользовательский скрипт, раньше работал, а теперь нет результата, смысл скрипта: на странице появляются динамические ссылки на товары с тегом h3, внутри текст, заканчивается ценой. Нужно отсекать весь текст до цены, затем сравнивать их между собой и выбирать самое большое значение. Исходный код страницы:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
</head>
<body>
<a href="https://xxx.com/details/18705731"><h3>(Standard) | Item | 9 pics | Price: US$0.27</h3>
</a>
Item
<br>Wed, 12 Oct 2016 04:00:56 +0000
<hr>
<a href=""><h3></h3></a><br><hr>
<a href=""><h3></h3></a><br><hr>...


Вот сам скрипт:

// ==UserScript==
// @name         myScript
// @namespace    [url]http://tampermonkey.net/[/url]
// @version      0.1
// @description  script!
// @include      xxx.com/rss.php
// @include      *xxx/*
// @include      [url]http://rutr*[/url]
// @include      [url]https://rutr*[/url]
// @require  [url]http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js[/url]
// @require  [url]https://gist.github.com/raw/2625891/waitForKeyElements.js[/url]
// @author       You
// @match        [url]https://mail.google.com/mail/u/0/#inbox[/url]
// @grant        none
// ==/UserScript==
(function() {
    'use strict';

                var job = $('a h3:contains("$")');
                var i = 0;
                var prices = [];
                var links = [];
                var max = 0;
                var link = '';
                job.each(function(){
                    prices[i] = $(this).html().split('$')[1];
                    links[i] = $(this).parent().attr('href');
                    i++;
                });
                for (var i = 0; i<prices.length; i++) {
                    if (max < parseInt(prices[i])) {
                        max = prices[i];
                        link = links[i];
                    }
                }
                if ((max > 0) && link && link.length) {
                    window.open(link,"_self");
                }
})();


Не подскажете, в чем ошибка?

Rise 18.05.2018 16:55

Какие ошибки в консоле браузера F12?

LeoBB 18.05.2018 17:51

Не показывает никаких ошибок, дебаггер в Хроме останавливается прямо в начале скрипта, на строке

debugger;(function() {


В firefox ошибки JS:
IndexedDB UnknownErr: ActorsParent.cpp:573 <unbekannt>
UnknownError <unbekannt>
IndexedDB UnknownErr: ActorsParent.cpp:573 <unbekannt>
UnknownError <unbekannt>
IndexedDB UnknownErr: ActorsParent.cpp:573 <unbekannt>
UnknownError


Использую Tampermonkey в Chrome и Greasemonkey в Firefox (откатился на старые версии для этого браузера, т.к. на новых версиях там все поломано).

Rise 18.05.2018 18:06

В обычном состоянии без debugger что в консоле?

LeoBB 18.05.2018 18:09

SCRIPT RUN TIME[myScript]: 21.000244140625ms

больше ничего нет.

А то, что дебаггер останавливается - он и на работающих останавливается, так что, наверное, не в тему.

P.S. Обновил текст скрипта, добавил заголовки Tampermonkey

laimas 18.05.2018 18:09

var max = 0, link;
$('h3').each(function() {
    var d = this.textContent.match(/\d+\.\d+$/)[0];
    if(d > max) {
        max = d;
        link = this.parentNode.href
    }
})

Rise 18.05.2018 18:13

debugger быть не должно нигде эта штука временная для отладки.

LeoBB 24.05.2018 01:38

Laimas, большущее спасибо! Теперь все работает. Сделал так:

var job = $('a h3:contains("$")');
                var i = 0;
                var prices = [];
                var links = [];
                var max = 0.26, link;
                $('h3').each(function() {
                var d = this.textContent.match(/\d+\.\d+$/)[0];
                if(d > max) {
                max = d;
               link = this.parentNode.href
                window.open(link,"_self")
                }
                })


Часовой пояс GMT +3, время: 10:44.