Ru-Board.club
← Вернуться в раздел «Web-программирование»

» вопросы по javascript

Автор: vs6262
Дата сообщения: 28.07.2013 23:32

Код: // Mouse Movement Begin
// Determine browser and version.
function Browser() {
var ua, s, s2, i;
this.isIE = false;
this.isNS = false;
this.version = null;
ua = navigator.userAgent;
s = "MSIE";
s2 = "Opera";
if (((i = ua.indexOf(s)) >= 0) || ((i = ua.indexOf(s2)) >= 0)) {
this.isIE = true;
this.version = parseFloat(ua.substr(i + s.length));
return;
}
s = "Netscape6/";
if ((i = ua.indexOf(s)) >= 0) {
this.isNS = true;
this.version = parseFloat(ua.substr(i + s.length));
return;
}

// Treat any other "Gecko" browser as NS 6.1.

s = "Gecko";
if ((i = ua.indexOf(s)) >= 0) {
this.isNS = true;
this.version = 6.1;
return;
}
}

var browser = new Browser();

// Global object to hold drag information.
var dragObj = new Object();

function dragStart(event, id) {
nn++;
dragObj.zIndex = nn;
document.getElementById(id).style.zIndex = nn;
dragObj.id=id;
try{
         if(document.getElementById(dragObj.id).childNodes[1].childNodes[0].tagName.toLowerCase()=="iframe"){
            document.getElementById(dragObj.id).childNodes[1].style.backgroundColor="#F8F8F8";
            document.getElementById(dragObj.id).childNodes[1].childNodes[0].style.visibility="hidden";
        }
}catch(ex1){/*ignore*/}

var el;
var x, y;
// If an element id was given, find it. Otherwise use the element being
// clicked on.
if (id)
dragObj.elNode = document.getElementById(id);
else {
if (browser.isIE)
dragObj.elNode = window.event.srcElement;
if (browser.isNS)
dragObj.elNode = event.target;
// If this is a text node, use its parent element.
if (dragObj.elNode.nodeType == 3)
dragObj.elNode = dragObj.elNode.parentNode;
}

// Get cursor position with respect to the page.
if (browser.isIE) {
x = window.event.clientX + document.documentElement.scrollLeft
+ document.body.scrollLeft;
y = window.event.clientY + document.documentElement.scrollTop
+ document.body.scrollTop;
}
if (browser.isNS) {
x = event.clientX + window.scrollX;
y = event.clientY + window.scrollY;
}

// Save starting positions of cursor and element.

dragObj.cursorStartX = x;
dragObj.cursorStartY = y;
dragObj.elStartLeft = parseInt(dragObj.elNode.style.left, 10);
dragObj.elStartTop = parseInt(dragObj.elNode.style.top, 10);

if (isNaN(dragObj.elStartLeft)) dragObj.elStartLeft = 0;
if (isNaN(dragObj.elStartTop)) dragObj.elStartTop = 0;

// Update element's z-index.

dragObj.elNode.style.zIndex = ++dragObj.zIndex;

// Capture mousemove and mouseup events on the page.

if (browser.isIE) {
document.attachEvent("onmousemove", dragGo);
document.attachEvent("onmouseup", dragStop);
window.event.cancelBubble = true;
window.event.returnValue = false;
}
if (browser.isNS) {
document.addEventListener("mousemove", dragGo, true);
document.addEventListener("mouseup", dragStop, true);
event.preventDefault();
}
}

var xx, yy;
function dragGo(event) {

// var x, y;

// Get cursor position with respect to the page.

if (browser.isIE) {
xx = window.event.clientX + document.documentElement.scrollLeft
+ document.body.scrollLeft;
yy = window.event.clientY + document.documentElement.scrollTop
+ document.body.scrollTop;
}
if (browser.isNS) {
xx = event.clientX + window.scrollX;
yy = event.clientY + window.scrollY;
}

// Move drag element by the same amount the cursor has moved.

dragObj.elNode.style.left = (dragObj.elStartLeft + xx - dragObj.cursorStartX) + "px";
dragObj.elNode.style.top = (dragObj.elStartTop + yy - dragObj.cursorStartY) + "px";

if (browser.isIE) {
window.event.cancelBubble = true;
window.event.returnValue = false;
}
if (browser.isNS)
event.preventDefault();
}

function dragStop(event) {
    PopUp[dragObj.id.substring(0,(dragObj.id.length-3))]["x"] = (dragObj.elStartLeft + xx - dragObj.cursorStartX);
    PopUp[dragObj.id.substring(0,(dragObj.id.length-3))]["y"] = (dragObj.elStartTop + yy - dragObj.cursorStartY);
try{
         if(document.getElementById(dragObj.id).childNodes[1].childNodes[0].tagName.toLowerCase()=="iframe"){
            document.getElementById(dragObj.id).childNodes[1].style.backgroundColor="#FFFFFF";
            document.getElementById(dragObj.id).childNodes[1].childNodes[0].style.visibility="visible";
        }
}catch(ex2){/*ignore*/}

// Clear the drag element global.
dragObj.elNode = null;

// Stop capturing mousemove and mouseup events.
if (browser.isIE) {
document.detachEvent("onmousemove", dragGo);
document.detachEvent("onmouseup", dragStop);
}
if (browser.isNS) {
document.removeEventListener("mousemove", dragGo, true);
document.removeEventListener("mouseup", dragStop, true);
}
}// Mouse Movement End
Автор: Cheery
Дата сообщения: 29.07.2013 00:23
vs6262

Цитата:
дождаться финала IE11

Автор: vs6262
Дата сообщения: 29.07.2013 21:49

Код: 1.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">


2.
<!doctype html>
Автор: Cheery
Дата сообщения: 29.07.2013 21:56
vs6262

Цитата:
можно ли в веб странице с помощью JavaScript'a Live переключать между HTML и HTML5 ?

нет (да и идея непонятная и ненужная)
Автор: vs6262
Дата сообщения: 29.07.2013 22:02
Cheery
мне собственно нужен на вебсайте участок для предпросмотра.

может както можно сделать на div или iframe ?
Автор: Cheery
Дата сообщения: 29.07.2013 22:04
vs6262

Цитата:
может както можно сделать на div или iframe ?

можно, смотря что.
Автор: vs6262
Дата сообщения: 29.07.2013 22:17
Cheery
Вы обрадовали меня

вообщем если конкретнее, JavaScript, html и css будь то из textarea или editable div нужно сделать предпросмотр элеминтов, к примеру созданной кнопки в отдельном участке на веб странице.

можно ли в div это переключать ? если да то как ?
Автор: Cheery
Дата сообщения: 29.07.2013 22:20
vs6262

Цитата:
можно ли в div это переключать ? если да то как ?

"это" - что ? doctype нельзя.. но можно создать iframe и "записать" в него все как хочется
iframe, соответственно, можно открыть как шаблон с различным doctype


Код: // create the iframe and attach it to the document
var iframe = document.createElement("iframe");
iframe.setAttribute("scrolling", "no");
iframe.setAttribute("frameborder", "0");
document.body.appendChild(iframe);

// find the iframe's document and write some content
var idocument = iframe.contentDocument;
idocument.open();
idocument.write("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">");
idocument.write("<html>");
idocument.write("<head></head>");
idocument.write("<body>this is the iframe</body>");
idocument.write("</html>");
idocument.close();
Автор: vs6262
Дата сообщения: 29.07.2013 22:27
спасибо, Cheery
Автор: vs6262
Дата сообщения: 06.08.2013 20:16
а можно опросить об браузер поддерживает HTML5 в виде true false ? если да то как ?
Автор: Cheery
Дата сообщения: 06.08.2013 20:18
vs6262

Цитата:
true false

var html5 = !!document.createElement('canvas').getContext;
Автор: BennyBlanco
Дата сообщения: 06.08.2013 22:01
Cheery
Вы мне дали выше скрипт, он мне пригодился и для другой цели:
<div class="video">http://vk.com/video_ext.php?oid=135420456&id=163726962&hash=48e356e59d616329</div>


Код: $(document).ready(function(){
$('.video').each(function(){
var data = ($(this).text());
var newHtml = '<iframe src="'+data+'" width="607" height="360" frameborder="0"></iframe>';
$(this).html(newHtml);
});
});
Автор: Cheery
Дата сообщения: 06.08.2013 22:05
BennyBlanco
с комментариями плохо - к ним доступ получить сложнее.


Цитата:
в <div  data-foo-bar="http://vk.com/.."></div>

ну и делается все аналогично, только $(this).text() меняется на $(this).attr('data-foo-bar')
Автор: BennyBlanco
Дата сообщения: 06.08.2013 22:16
Cheery
Я опять шокирован столь быстрым ответом
Спасибо, работает то что нужно!
А еще есть какие другие варианты?
Автор: Cheery
Дата сообщения: 06.08.2013 22:17
BennyBlanco

Цитата:
А еще есть какие другие варианты?

да вариантов полно, но если работает, то зачем менять?
Автор: BennyBlanco
Дата сообщения: 06.08.2013 22:22
Cheery
Да я просто интересуюсь, может есть лучший вариант. Меня этот вариант устраивает поисковик ведь не учитывает текст в варианте с data-* ?
Автор: Cheery
Дата сообщения: 06.08.2013 22:22
BennyBlanco

Цитата:
Меня этот вариант устраивает поисковик ведь не учитывает текст в варианте с

но страница может не пройти валидацию.
Автор: BennyBlanco
Дата сообщения: 06.08.2013 22:25
Cheery

Цитата:
но страница может не пройти валидацию.

Ну это не страшно ). А какой есть вариант чтоб прошла?

Добавлено:
В общем вариант с дата вполне устраивает, а главное работает.
Вот у меня возник еще вопрос иногда встречаю скрипт обрамляют в комментарий, зачем и что это дает? (кроме того что он перестает работать)
например:
<script type="text/javascript" ><!--$(document).ready(function(){video_load('http://video.yandex.ru/users/centrofun/view/23/', 'e12249ed1eaf3', [video_html], false, videoscript_domain);});//--></script>
Автор: Cheery
Дата сообщения: 07.08.2013 01:10
BennyBlanco

Цитата:
Вот у меня возник еще вопрос иногда встречаю скрипт обрамляют в комментарий, зачем и что это дает?

для тех программ, что не поддерживают что либо..
изначально так писали для тех браузеров, что не поддерживают тег script, тогда содержимое игнориировалось, так как являлось html комментарием.

сейчас же может быть как "экранирование" для xml редакторов (версия xhtml)
по нормальному следует писать
<script type="text/javascript" >
<![CDATA[
]]>
</script>
но можно и так, как выше.
если в javascript коде без этого способа встретится & (вместо &amp;), то это нарушает xml стандарт.
Автор: BennyBlanco
Дата сообщения: 07.08.2013 01:47
Cheery
Благодарю за разъяснение и помощь.
Автор: unreal666
Дата сообщения: 07.08.2013 03:11
вообще-то когда <!-- в той же строке, что и сам код, то этот код будет игнорироваться (почему-то получается что-то типа комментария).
Автор: Cheery
Дата сообщения: 07.08.2013 03:18

Цитата:
вообще-то когда <!-- в той же строке, что и сам код, то этот код будет игнорироваться (почему-то получается что-то типа комментария)

это не javascript комментарии.
в принципе должно быть
<script>
//<!--
идет код
//-->
</script>

ps: хотя нет, можно и без //
но js выполняется, такая запись, как и писал, раньше применялась для того, чтобы игнорировался код браузерами не поддерживающими script тег. игнорировался и не отображался.

сейчас же для xhtml, чтобы код не "смущал" программу работающую с html как с xml данными
Автор: unreal666
Дата сообщения: 07.08.2013 04:48

Цитата:
это не javascript комментарии.

знаю.
но в таком варианте

Код: <script>
<!--
<!-- document.write('test1' + '<br>');
document.write('test2' + '<br>'); <!-- document.write('tes3' + '<br>');
document.write('test4' + '<br>');
<!-- document.write('test5' + '<br>'); --> document.write('test6' + '<br>');
-->
</script>
Автор: vs6262
Дата сообщения: 09.08.2013 06:03
нужна помощь: как с помощью JS обратится из iframe к id элемента в Body ?
Автор: Cheery
Дата сообщения: 09.08.2013 06:25
vs6262

Цитата:
как с помощью JS обратится из iframe к id элемента в Body

iframe с того же домена? если нет, то никак.. если да, то
parent.document.getElementById('id')
Автор: Aladdinych
Дата сообщения: 14.08.2013 12:24
Подскажите как такое можно сделать.
Заполняю форму на некоторой странице для сохранения на сайте данных.
Мне нужно:
1. Выбрать на локальном диске фото, чтобы оно после выбора тут же отобразилось на странице.
2. Указать на локальном диске папку, содержащую коллекцию фото для галереи, чтобы они после выбора отобразились на этой же странице в рамках заданного макета.
3. По нажатию на некоторую кнопку "сохранить" все отобранные файлы отправлялись на сервер в заданные папки. При этом на сервере нужно создать папку с заданным именем.

Добавлено:
В этом плане например с input проблемы. При выборе он хранит имя файла без маршрута.
Получается нельзя выяснить где, в какой папке находится этот файл.
Автор: Cheery
Дата сообщения: 14.08.2013 17:30
Aladdinych
это возможно с помощью js только в html5 (drap and drop аплоад файлов).
иначе только с помощью flash/java
Автор: Aladdinych
Дата сообщения: 14.08.2013 19:06
В принципе п3. можно из модуля PHP сделать но все остальное конечно хотелось бы с js.
если говорить вкратце, я хочу с помощью диалогов указать файлы изображений, построить из них на странице превью, причем в нужном мне макете, а затем по клику на кнопке сохранить на сервер.
Примеры есть какие-нибудь?
Автор: Cheery
Дата сообщения: 14.08.2013 19:07
Aladdinych

Цитата:
В принципе п3. можно  из модуля PHP сделать но все остальное конечно хотелось бы с js.

каким образом?
1) вам форма не передаст путь
2) вы не сможете автоматически перебрать файлы в папке у пользователя.
Автор: Aladdinych
Дата сообщения: 14.08.2013 21:39
Примеры есть какие-нибудь?

Страницы: 12345678910111213141516171819202122

Предыдущая тема: jQuery: Перемещение якоря на верх страницы


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.