Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Работа js в Tempermonkey в фоновом режиме

Добрый день. Не могу понять почему мой скрипт работает нормально когда страница в фокусе , а когда в фоновом режиме, то начинаются проблемы с работой скрипта. Кто сталкивался с этой проблемой, напишите как её решить, работаю в ХРОМЕ.
(function() {
   'use strict';

   // Your code here...
   var timerId;
   var trigger = false;

   function finder() {
       var iframe = document.getElementsByTagName('iframe')[0];
       var iframeDoc = iframe.contentWindow.document;
       var listBox = iframeDoc.querySelectorAll('tr > td > nobr:last-child');
       for (var i = 0; i < listBox.length; i++) {
           var str = listBox[i].innerHTML;
           if (str.indexOf('+1') != -1 || str.indexOf('+2') != -1) {
               if (!trigger) {
                   document.title = 'БЕРИ!!!';
                   trigger = true;
                   console.log('+');
                   return;
               } else {return;}
           }}
       trigger = false;
       document.title = 'Пусто';
   }

   function load() {
   var iframe = document.getElementsByTagName('iframe')[0];
   var iframeDoc = iframe.contentWindow.document;
   if (iframeDoc.readyState == 'complete') {
       iframeDoc.getElementsByClassName('ms-crm-List-Sortable')[8].click();
       //console.log(iframeDoc.getElementsByClassName('ms-crm-List-Sortable')[8]); !!!!!!!!!!
   } else {
       iframe.onload = function() {
           var iframeDoc2 = iframe.contentWindow.document;
           //console.log(iframeDoc2.readyState);
           iframeDoc2.getElementsByClassName('ms-crm-List-Sortable')[8].click();}
   }
   setTimeout(function(){finder()}, 5000);
   }
   var globalTimer = setInterval(function(){load()}, 9000);
})()


Когда фоновый режим тогда Сеттаймаут работает не корректно
Ответ: j0hnik,
рони,
Malleys,
Спасибо за ваш отклик . Спасибо огромное за помощь, я безумно вам благодарен .
Спасибо вам ребята .
Вопрос: Скачивание файла в фоновом режиме

Ищу грамотного человека, для выполнения следующей задачи: по протоколу http нужно выполнить скачивание файла в фоновом режиме, без участия юзера и все это средствами JavaScript.
Разъяснение: допустим есть прямая ссылка на файл (любой) на web странице, нужно при открытии этой страницы браузером выполнить скачивание этого файла на хард зашедшему без каких-либо запросов (типа сохранить как) и после успешной закачки произвести удаление это файла.
Сразу скажу, это не для распространения какого-либо малваря, обратите внимание, в конце даунлоада файл не нужно выполнять, а наоборот удалить...
И еще - это для личных нужд...
ЗЫ Короче, кто способен сие написать, отпишитесь или в асю, о цене договоримся...
Ответ: Можно использовать объект WebSocket, который может безопасно делать запросы, т.е. заголовки и cookies беруется не из браузера, а приходится их самому прописывать.
Также можно выполнять .
Для SaveAs возможно сработает
Вопрос: Нужен совет "на тему фонового исполнения задач"

Пишу к системе (похожа на файловый менеджер "FAR", но находится в вебе) - модуль отображающий пользователю статусы запущенной задачи, например такой как: "какой файл от куда и куда копируется", т.е. по сути это фоновое обновление статусов для запущенных задач пользователя.


Работает так: демон берёт из очереди - задачу и начинает её выполнять (допустим копирование файла), демон проходит 4-е этапа выполнения (Новая задача, задача в работе, задача выполнена или задача не выполнена). Все эти этапы я и отображаю в div-е на клиенте
в соответствующем представлении с помощью javascript, в частности setTimeout (выполяню ajax-запрос к таблице с задачами для получения текущего статуса задачи).


ПРОБЛЕМА в следующем:

Во время отображения пользователю статусов запущенной задачи, вся страница на клиенте (файловый менеджер) блокируется на время выполнения всего цикла отображения статусов для данной задачи (в данном случае для копирования). Требуется реализовать, чтобы статусы отображались в фоновом режиме и не мешали работе с файловым менеджером (по каталогам походить, ещё копирование
чего-нибудь запустить).


Что посоветуете, есть ли какие-то готовые решения на которых это можно реализовать?
Ответ: Без кода не понять. Если вы используете асинхронный ajax, то ничего блокироваться не должно.
Вопрос: Создание фоновой картинки средствами HTML

Народ здравствуйте. Сдавал контрольную работу преподу и он спросил почему я фоновую картинку прописал путь через CSS? Сказал что правильно делать В HTML. Правда ли? И как это?
Ответ: Приветствую!

Сообщение от makzimus1980
Сдавал контрольную работу преподу и он спросил почему я фоновую картинку прописал путь через CSS? Сказал что правильно делать В HTML. Правда ли? И как это?
Он не совсем прав. Можно фоновую картинку вставлять как через css, так и через html. Второй вариант лучше использовать в том случае, если фон нужно задать именно для определённого элемента, у которого нет id.
Для задания фонового изображения с без помощи css используется параметр 'background'. Пример:
Javascript
1
<body background='путь к изображению'>
Вопрос: перезагрузка страницы - убрать

есть сайт карточной игры дурак, так вот во время всей игры страница полностью перезагружается, а нужно чтобы это происходило в фоновом режиме. Ни как не получается исправить- мозг кипит, код ломается
<?php
session_start();
?>
<body OnLoad = 'setTimeout("reload_page()",5000);'>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="http://jqueryrotate.googlecode.com/svn/trunk/jQueryRotate.js"></script>
    <script>
function reload_page() { self.location.href=document.location.href; }
</script>
<script type="text/javascript">
$(document).ready(function()
{
	$('#image').rotate(90);
});
</script>
<link rel="stylesheet" type="text/css" href="style.css"/>
<div class="b_block_play">
<div align="center" class="b_block_kard_1">

<?
        if(isset($_GET['id_game'])){ $id_play=($_GET['id_game']);} else{$id_play="";};
        if(isset($_GET['id1'])){ $id_user1=($_GET['id1']);} else{$id_user1="";};
        if(isset($_GET['id2'])){ $id_user2=($_GET['id2']);} else{$id_user2="";};
        if(isset($_GET['r'])){ $r=($_GET['r']);} else{$r="";};
        
        if(isset($_GET['mos'])){ $mos=($_GET['mos']);} else{$mos="";};
        
     
        
        $rz= md5(iconv('CP1251','UTF-8',$id_play-$id_play-23250));
        

        
       $times = time();
    include "bd_connect.php";
    
    
    $resulthatistim=mysql_query("select * from koloda WHERE id_play='$id_play'");
$rowsni=mysql_fetch_array($resulthatistim);
$v_stat=$rowsni['stat'];
if($v_stat==1){

          mysql_query("update non_kards set id_user=0 where id_game='$id_play'");  
          mysql_query("update non_kards set id_sop=0 where id_game='$id_play'"); 
    
    }
    
$resulthati = mysql_query("select * from seting");
$rowsn = mysql_fetch_array($resulthati);
$links = $rowsn['cas_url'];
    
$timss_hot = $rowsn['timers'];
    
$restszkl = mysql_query("SELECT COUNT(*) FROM playroom WHERE idg='$id_play'");
$rowsazkl = mysql_fetch_row($restszkl);
$kol_kart = $rowsazkl[0];

$resulthatistim=mysql_query("select * from users WHERE id='$id_user2'");
$rowsni=mysql_fetch_array($resulthatistim);
$login2=$rowsni['login']; 

$resulthatistim=mysql_query("select * from users WHERE id='$id_user1'");
$rowsni=mysql_fetch_array($resulthatistim);
$login1=$rowsni['login'];  

$resulthatistim=mysql_query("select * from seting WHERE idd='1'");
$rowsni=mysql_fetch_array($resulthatistim);
$fish=$rowsni['fish']; 

$resulthatistim=mysql_query("select * from games WHERE game_id='$id_play'");
$rowsni=mysql_fetch_array($resulthatistim);
$sg_bank=$rowsni['bank']; 
$r1=$sg_bank/100;
$r2=$r1*$fish;
$r3=$sg_bank-$r2;  
   
$resulthatistim=mysql_query("select * from timers WHERE id_play='$id_play'");
$rowsni=mysql_fetch_array($resulthatistim);
$t_stat=$rowsni['stat'];
$t_time_hod=$rowsni['time_hod'];

               $resul=mysql_query("select * from sessio_play WHERE id_play='$id_play'");
                    $rowe=mysql_fetch_array($resul);
                    $koloda_acces=$rowe['acces'];


if($t_stat==0){
mysql_query("update timers set id_user_hod=$id_user1 where id_play='$id_play'");
mysql_query("update timers set id_user_2=$id_user2 where id_play='$id_play'");
mysql_query("update timers set stat=1 where id_play='$id_play'");
mysql_query("update timers set time_hod=$times where id_play='$id_play'");
}

$resulthatistim=mysql_query("select * from koloda WHERE id_play='$id_play'");
$rowsni=mysql_fetch_array($resulthatistim);
$v_koloda=$rowsni['kol'];
$v_stat=$rowsni['stat'];
$v_kozar=$rowsni['kozar'];



  $resulthatistim=mysql_query("select * from cards WHERE id_card='$v_kozar'");
                $rowsni=mysql_fetch_array($resulthatistim);
                $link_v_kozar=$rowsni['link'];
Ответ:
Сообщение от extensari
возможно, но все же сайт работает без проблем.
Ну так работать и так будет:

echo '<';
echo 'h';
echo 't';
echo 'm';
echo 'l';
echo '>';
//....


Но вряд ли это стоит делать. Вы третируете базу множественными запросами, которые можно выполнить одним, а запрос, это открытие соединения. Плюс излишество разборок ресурсов, как следствие кучи запросов.

Сообщение от extensari
А что скажите на счет перезагрузки
В фоновом режиме, это Ajax, вот только если всю страницу, то в зависимости от содержимого страницы ее перерисовка необязательно произойдет незамеченной. Наверное не всю страницу нужно рендерить заново, а только что-то из нее? Запрашивайте это у сервера что-то асинхронным запросом, получайте и обновляйте.
Вопрос: Ищу правильное решение с адаптивным фоновым изображением

К примеру есть изображение в виде фоновой картинки кот. будет находиться в шапке сайта. Изображение будет отцетрировано, а по краям будет фоновый цвет. При уменьшении размера браузера, изображение должно соответственно адаптироваться. В шапке также будет пару блоков с текстом.

С изображением получился затык. Кстати пробовал добавлять padding-top: %; - работает, только тогда текст блока идет ниже фонового изображения.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<head>
    <title>An XHTML 1.0 Strict standard template</title>
    <meta http-equiv="content-type" 
        content="text/html;charset=utf-8" />
    <link rel="stylesheet" type"text/css" href="styles.css" />
    
 
</head>
 
<body>
<div class="main">
 
    <div class="header">
    <h1>Приветствую</h1>
    </div>
</div>
 
</body>
CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
body {
margin:0;
padding:0;
background-color:#edd383;
background-image: url([url]http://www.pets4homes.co.uk/images/articles/3442/why-is-my-cats-coat-changing-colour-5698ec0804ccb.jpg);[/url]
background-repeat:no-repeat;
background-position:center;
 
}
.main {
max-width:740px;
margin:0 auto;
}
 
.header {
 
}
Ответ:
CSS
1
2
3
4
body {
background: url('../img/example.png')  #f0bf93 85% 59%  no-repeat ;
background-size: 45%;
}
вот тебе пример как я работаю с картинками в фоне.

зачастую если мне нужно адаптивно фоновую картинку сдвигать в зависимости от разрешения, я создаю отдельный блок куда её вкладываю, но со значением position: absolute.

так же отличный вариант изменения позиции твоей фоновой картинки - это использование @media (медиа запросов), где при нужной ширине ты задаешь другие координаты своей картинки.

Помогло?
Вопрос: Цикл слайда фоновых изображений

Я сделал скрипт, который изменяет каждые 10 секунд картинку на другую и ходит по циклу. Но я сделал это через CSS3 что очень нагружает сайт, не работает на мобильниках и в последних версиях ИЕ(Интернет Експлорера). Не подскажете как бы сделать что бы это не сильно нагружало пользователя, работало во всех последних версиях браузеров(по крайней мере оставляло хотя бы одно картинку, что бы не было пустоты) и могло слайдить картинки 2-3 штуки с определенным промежутком времени?

У меня на сайте уже подключена библиотека JQ так что я подумал что именно с помощью нее можно легко что-то такое сделать.
Не подскажите как такое сделать? Может у вас уже есть готовые примеры?

Вот что у меня есть сейчас:
Код CSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
body {min-width: 100%; min-height: 100%; animation-name: spin; animation-duration: 10000ms; animation-iteration-count: infinite; animation-timing-function: cubic-bezier(1, 0, 0, 1); animation-direction: alternate; background: url('/images/oter_bg/img4.jpg') center center no-repeat; background-size: cover; background-attachment:fixed;}
 @-webkit-keyframes spin {
 0% {
 background: url('/images/oter_bg/img4.jpg') center center no-repeat;
 }
 100% {
 background: url('/images/oter_bg/img6.jpg') center center no-repeat;
 }
 }
 @keyframes spin {
 0% {
 background: url('/images/oter_bg/img4.jpg') center center no-repeat;
 }
 100% {
 background: url('/images/oter_bg/img6.jpg') center center no-repeat;
 }
 }
Как видите - это тотальное идиотство. Эта штука почему-то бесконечно нагружает браузеры, в частности Chrome.

Буду признателен за помощь, благодарю за внимание!

Добавлено через 1 минуту
Ах да, я там влепил еще в сам боди фоновую картинку, ибо ИЕ не работал с анимацией и был белый фон, так на фоне остается хотя бы одна картинка, а вторая, при этом, грузится в холостую(что тоже большая и бесполезная потеря трафика/ресурсов)...
Ответ: Az Rieil, Еще не правильно открыта функция( нужно не круглой скобкой а {} использовать) и ссылка на картинку задается по идее из src, хотя можно ж задать любой атрибут, так что тут по сути нет проблемы.

Но проблема была в вашем "жаргонном" выражении IF, там ругалось на какую-то из скобок, в общем я так и не понял на какую и написал как понятней для меня:
Код Javascript
1
if (current == $images.size()) {current = 0} else{current++;}
Но в целом благодарю за помощь ибо это именно то что я искал! Большое спасибо!

Добавлено через 4 минуты
Просто хочу подчеркнуть эффективность этого способа.

Скорость загрузки сайта поднялась на 40%. Лаги в браузерах вообще пропали. Подгрузка изображений работает всегда корректно(в фоновой подгрузке, которую я использовал ранее изображения часто слетали при слабом интернете) и это работает во всех нужных мне браузерах!
Вопрос: Написать сценарий, который при нажатии на гиперссылку меняет фоновый цвет элемента на прозрачный

Напишите сценарий, который при нажатии на гиперссылку меняет фоновый цвет элемента с классом .play на прозрачный. (используйте CSS-свойство opacity).
Ответ:
Сообщение от Artur zhitkovic
при нажатии на гиперссылку меняет фоновый цвет элемента
Javascript
1
2
3
4
5
6
7
8
var play = document.querySelectorAll('.play'),
        play = Array.prototype.slice.call(play),
    link = document.getElementById('link');
link.addEventListener('click', function () {
    play.forEach(function (e) {
    e.style.backgroundColor = 'transparent';
  });
});
Добавлено через 1 минуту
Правда странно, что дальше сразу написано
Сообщение от Artur zhitkovic
используйте CSS-свойство opacity
Добавлено через 25 секунд
Не понятно, какое именно свойство надо менять
Вопрос: работа с фоновым изображением для элементов списка

Возникла задачка заполнить элементы списка по итерации с массива.Массив с названиями изображений, на jquery
была решена следующим образом

$("li[id=item]").each(function(i)
{
path="img/"+Array[i];
$(this).css({"background-image":"url("+path+")"});
});

возможно будет кому то полезным
Ответ: $("ul[id=item_list] li").each(function(i) более корректный вариант
то что заметили спасибо
Вопрос: Дополнительные навыки при устройстве на работу флеш-программистом

Заранее прошу прощения если тема баянистая и не в том разделе.
Только начал учить АS3.Читаю "ActionScript 3.0 для Flash. Подробное руководство. Колин Мук".
Что по мимо AS3 надо знать,что бы устроится на работу ? Сколько вакансий не пересматривал,все время требуются еще овердофига языков программирования (везде по разному).
На ЗП громадную естественно не претендую,в стиле "возьмите пожалуйста без опыта работы меня,можно и на испытательный срок без зарплаты".Вот с учетом этого,что еще надо 100% выучить (без чего вообще ни как не возьмут) ?
И без знаний чего возьмут,но это желательно знать ?
Заранее спасибо.
Ответ: alexandr_ratush, на начальном этапе важнее. Эти технологии непосредственно во флеше применяются, а серверный ЯП можно никогда и не знать, заниматься чисто клиентской частью. Понятно, что чем больше знаешь, тем лучше, но сейчас не об этом. В отношении git. А если другая программа для этого используется, например svn или что-то другое? Вот это уже по ходу дела можно изучить в зависимости от условий работы.
В отношении сервера важно понимать принцип работы, но это скорее из категории общих знаний, чем имеющее отношение непосредственно к навыкам программирования для клиента.