Подскажите с JS пожалуйста

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Подскажите с JS пожалуйста

Сообщение xqz_me » 18.12.2006 (Пн) 22:52

Вообщем, я в этом деле, ничего не понимаю... Нужен такой простенький скриптик. Вводится в поле адрес браузера. Он должен
1) Вывести window.prompt, в который пользователь вводит адрес некоторой картинки.
2) Отобразить эту картинку на пустой странице. Именно на странице (видимо, с тегами img), потому что если браузеру просто передать адрес этой картинки, он начнёт её закачивать в файл, а вот этого как раз и не надо.
Ограничение на количество символов в поле "адрес" - 100 штук :(
Поможите?

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 19.12.2006 (Вт) 17:39

Ну так что, поможет кто-нибудь?

_ae_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 165
Зарегистрирован: 08.10.2006 (Вс) 14:37

Сообщение _ae_ » 19.12.2006 (Вт) 18:24

_image_.src=prompt("AAA")

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 19.12.2006 (Вт) 18:35

А по-подробней можно? Я в этом деле мало что понимаю...

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 19.12.2006 (Вт) 20:11

Код: Выделить всё
<img name="myImage" style="border: 1px solid black; display: none;"/>

<input type="button" value="Load" onclick="showImage()">

<script type="text/javascript">
function showImage()
{
   var img = document.images.myImage;
   img.src = prompt("Write ImagePath", "C:\\....gif")
   img.style.display = "";
}
</script>

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 19.12.2006 (Вт) 20:41

Огромное тебе спасибо! Как раз то, что мне надо! :)

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 19.12.2006 (Вт) 22:18

А поворачивать картинку на 90 градусов js может?

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 19.12.2006 (Вт) 22:34

Это может фильтр BasicImage, но только в IE.
Код: Выделить всё
<img style="filter: progid:DXImageTransform.Microsoft.BasicImage(Rotation=1); ">
Лучший способ понять что-то самому — объяснить это другому.

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 19.12.2006 (Вт) 23:13

Этакий мини-просмотрщик получился
Код: Выделить всё
Введите ссылку или путь к картинке<br/>
<input type="file" id="download" size="50" onchange="showImage()" onkeypress="if(event.keyCode == 13) showImage()"/>
<input type="button" value="Show" onclick="showImage()"/><br/>
<input type="button" onclick="rotateImage(1)" value="Rotate 90&deg;"/>
<input type="button" onclick="rotateImage(2)" value="Rotate 180&deg;"/>
<input type="button" onclick="rotateImage(3)" value="Rotate -90&deg;"/>
<input type="button" onclick="rotateImage(0)" value="Normal"/><br/>

<img name="myImage" style="border: 1px solid black; display: none;"/><br/>


<script type="text/javascript">
var img = document.images.myImage;
function showImage()
{
   img.src = document.getElementById("download").value;
   img.style.display = "";
}
function rotateImage(param)
{
   img.style.filter = "progid:DXImageTransform.Microsoft.BasicImage(Rotation="+param+")";
}
</script>

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 19.12.2006 (Вт) 23:25

Cпасибо, тока, видимо, придётся без этого :) В IE-то это работает, а в опере нет. Мне нужно было это под Opera 8.0 for Synergy (браузер для мобильника, ведёт себя точно так же как настольная опера). :) Но вс равно спасибо.

Ещё такой вопросик (надеюсь, последний)... Есть скрипт
Код: Выделить всё
javascript:(function(){

var count=0, text, dv;
text=prompt(%22Search phrase:%22, %22%22);
if(text==null || text.length==0) return;

dv=document.defaultView;

function searchWithinNode(node, te, len){

var pos, skip, spannode, middlebit, endbit, middleclone;
skip=0;
if(node.nodeType==3){
  pos=node.data.toUpperCase().indexOf(te);
  if(pos>=0){
    spannode=document.createElement(%22SPAN%22);
    spannode.style.backgroundColor=%22yellow%22;
    middlebit=node.splitText(pos);
    endbit=middlebit.splitText(len);
    middleclone=middlebit.cloneNode(true);
    spannode.appendChild(middleclone);
    middlebit.parentNode.replaceChild(spannode,middlebit);
    ++count;
    skip=1;
  }
}else if( node.nodeType==1&& node.childNodes && node.tagName.toUpperCase()!=%22SCRIPT%22 && node.tagName.toUpperCase!=%22STYLE%22){
  for (var child=0; child < node.childNodes.length; ++child){
    child=child+searchWithinNode(node.childNodes[child], te, len);
  }
}
return skip;
}
window.status="Searching for '"+text+"'...";
searchWithinNode(document.body, text.toUpperCase(), text.length);
window.status="Found "+count+" occurrence"+(count==1?"":"")+" of '"+text+"'.";

})();

Подсвечивает жёлтеньким слово, которое ищем на странице. Можно ли его его сократить до 100 символов (остальное, видимо, подгружать из файла)?... Дело в том что надо осуществить поиск на уже загруженной странице. На компе всё работает, если это ввести в поле адрес браузера. А на мобильнике ограничение на ввод в это поле - 100 символов. Что можно придумать?

KDima
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 759
Зарегистрирован: 14.07.2004 (Ср) 23:14
Откуда: СПб

Сообщение KDima » 20.12.2006 (Ср) 0:36

xqz_me
Вынеси все функции в тег <script> и вызывай их javascript:MyFunc();
Хороший прогер не тот, кто всё знает, хороший прогер знает, где найти знание.

Последний раз редактировалось: Administrator (15.07.2004 (Вт) 00:01), всего редактировалось 999 раз(а)

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 20.12.2006 (Ср) 1:51

KDima писал(а):Вынеси все функции в тег <script> и вызывай их javascript:MyFunc();

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

У меня вот что получилось, но всё-равно это больше ста символов:
Код: Выделить всё
javascript:(document.body.appendChild(document.createElement(%22SCRIPT%22))).setAttribute(%22src%22,%22http://<здесь путь к скрипту>/s.js%22)


Сам скрипт практически без изменений сохраняется в отдельном файле s.js

Но даже если скритп будет лежать на хосте с трёхбуквенным названием (плюс точка и два символа на расширение), то длина строки получается 125 символов.

ЗЫ: прикрутил эту фишку к своему браузеру -- очень прикольно и удобно получилось.

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 20.12.2006 (Ср) 15:07

Так что-то не заработало (то ли файл s.js не правильно создал, то ли не правильно указывал путь к локальному файлу в первой части скрипта). Впрочем, не важно, поскольку я нашёл способ сохранять в закладке аж 1024 символа. 8) Пришлось выкинуть из скрипта одну бесполезную строчку (window.status=...), зато теперь всё работает. skiperski, огромное спасибо! :)

xqz_me
Постоялец
Постоялец
 
Сообщения: 413
Зарегистрирован: 04.12.2005 (Вс) 14:58

Сообщение xqz_me » 22.12.2006 (Пт) 10:42

Так... А можно ли принудительно записать всё содержимое страницы в файл, путь которого ввёл пользователь в окошке prompt? :)


Вот что нашёл, но работает только в IE.
Код: Выделить всё
void(document.execCommand('SaveAs',null,'page.htm'))


Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 115

    TopList