Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.10.2014, 23:22
Аспирант
Отправить личное сообщение для Alex1233 Посмотреть профиль Найти все сообщения от Alex1233
 
Регистрация: 06.04.2014
Сообщений: 45

Сообщение от danik.js
Открываешь консоль, вводишь там $('.invisible').remove() - и "защита" отключена ))
Кстати, вопрос не по теме, но раз уж затронули.. А как выполнить скрипт через адресную строку? Помню когда то давно видел такой код на JS - открываешь любой сайт, убираешь все из адресной строки, фигачишь туда этот код, жмешь интер и все картинки на страничке начинают летать.

Сейчас мне понадобилось вызывать функцию (для удаленной перезагрузки домашнего роутера, так как периодически сама кнопка перезагрузки не загружается), а никак не могу понять как это сделать через адресную строку..
Ответить с цитированием
  #12 (permalink)  
Старый 07.10.2014, 23:31
Аспирант
Отправить личное сообщение для Alex1233 Посмотреть профиль Найти все сообщения от Alex1233
 
Регистрация: 06.04.2014
Сообщений: 45

Вот как я это делал на PHP:

// вычисляем общую длину текста
$str = strlen( $row['short_story'] );

// получаем середину текста в количестве символов
$strpol = $str / 2;
			
// ищем первый конец предложения (. ) после середины текста
$startpost = strpos($row['short_story'], '. ', $strpol);

// возвращаем 2 символа
$startpost = $startpost + 2;
		
// генерируем первую часть текста		
$row['short_story1'] = substr($row['short_story'], 0, $startpost);

// генерируем вторую часть текста
$row['short_story2'] = substr($row['short_story'], $startpost);
		
		
// создаем массив из вставок
$insert = array("Взято с сайта ....", "Специально для ...", "Написано специально для ...", "Написано специально для сайта ...", "Взято с ...", "Рассказ написан специально для ...", "и т.д.");
		
$randins = array_rand($insert);
				
		
$thisurl = $_SERVER['REQUEST_URI'];

// выводим первую и вторую часть вставляя между ними свой текст
$tpl->set( '{short-story}', $row['short_story1'] . "<span style=\"width: 1px; height: 1px; display: block; opacity: 0; float: left;\"><a href=\"" . $thisurl . "\">" . $insert[$randins] . "</a></span> " . $row['short_story2'] );



Подскажите пожалуйста, как это переделать на JQUERY?
Ответить с цитированием
  #13 (permalink)  
Старый 08.10.2014, 08:57
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Alex1233,
Есть такая чудесная вещь как консоль. В хроме и лисе вызывается через f12.Вот там можно и исходный код смотреть и запросы, и выполнять js код.

У тебя несколько вариантов:
1 Втыкать невидимую ссыль на сервере.

2 Написать функцию которая при загрузке страницы проверяет ее на наличие блоков текста с классом например ,needLink и вставлять туда невидимую ссыль
Вот пример http://jsfiddle.net/fygy8osw/1/
Как видишь там чистый текст, если в тексте есть html, придется что то придумывать, а то будет неприятно если вставиться как нибудь так <spa<a href="/path/">my link</a>n>my text</span>

3 Поискать решения на основе clipboard. Есть такие события как copy,past в которых доступен скопированный текст через e.clipboard помоему, не знаю точно не сталкивался. Не кроссбраузерная вещь, но тоже точно не знаю. Так вот так же как в прошлом примере, только на oncopy вставляем в середину теста из clipboard.

Последний раз редактировалось krasovsky, 08.10.2014 в 09:02.
Ответить с цитированием
  #14 (permalink)  
Старый 08.10.2014, 16:03
Аспирант
Отправить личное сообщение для voral Посмотреть профиль Найти все сообщения от voral
 
Регистрация: 03.10.2014
Сообщений: 67

ну так преобразуйте строку в массив, разделяя по пробельным символам. От длинны посчитайте середину. Возьмите два соседних слова около серединой. И, далее, замените комбинацию этих слов, на комбинацию но со спаном внутри.
Ответить с цитированием
  #15 (permalink)  
Старый 08.10.2014, 20:51
Аспирант
Отправить личное сообщение для Alex1233 Посмотреть профиль Найти все сообщения от Alex1233
 
Регистрация: 06.04.2014
Сообщений: 45

krasovsky, во, спасибо за ссылочку - вроде то что нужно! Посмотрю потом повнимательнее.

voral, это то понятно, я просто не знаю как это сделать на JQUERY...

Последний раз редактировалось Alex1233, 08.10.2014 в 21:07.
Ответить с цитированием
  #16 (permalink)  
Старый 08.10.2014, 23:16
Аспирант
Отправить личное сообщение для voral Посмотреть профиль Найти все сообщения от voral
 
Регистрация: 03.10.2014
Сообщений: 67

Как добраться до элемента содержащего текст знаете?
<!DOCTYPE HTML>
<html>
  <head>
  	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script>
  </head>
  <body>
    <div class="text-body">Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне. Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI века. В то время некий безымянный печатник создал большую коллекцию размеров и форм шрифтов, используя Lorem Ipsum для распечатки образцов.<br> Lorem Ipsum не только успешно пережил без заметных изменений пять веков, но и перешагнул в электронный дизайн. Его популяризации в новое время послужили публикация листов Letraset с образцами Lorem Ipsum в 60-х годах и, в более недавнее время, программы электронной вёрстки типа Aldus PageMaker, в шаблонах которых используется Lorem Ipsum</div>
    <a id="test" href="#">Делим</a>

    <script>
      var insertLink = function(srcText)
      {
        // берем блок содержащий текст
        var textBox = $('.text-body');
        // берем из блока html (не забываем про br) и сразу делим полученное в массив.
        // в качестве разделителя пробел
        // но! это если реально не может быть вложенных тегов. Иначе нужно будет использовать
        // регулярные выражения
        var arrWords = textBox.html().split(' '); // берем из н
        // вставляем в серидину массива нужный код
        arrWords.splice(Math.ceil(arrWords.length / 2), 0, '<a href="http://ya.ru/" class="some-class">YES!!!</a>');
        // склеиваем массив в одну строку и заменяем на это значение html содержащийся в искомом блоке
        textBox.html(arrWords.join(' '));
      }
      $(document).ready(function(){
        // это только для очевилности. Можете вызвать эту ф-ию в нужный вам момент
        $('#test').click(insertLink);
      });
    </script>

  </body>
</html>


По сути тут и jQuery особо не нужен.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка текста в середину документа Гришан Элементы интерфейса 1 23.07.2011 23:43
Чудеса математики js при padding borovik Элементы интерфейса 6 09.07.2011 21:02