Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 24.07.2017, 14:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

DjFuntik,
не могу помочь, не понимаю что вы хотите сделать.
Ответить с цитированием
  #12 (permalink)  
Старый 26.07.2017, 10:52
Интересующийся
Отправить личное сообщение для DjFuntik Посмотреть профиль Найти все сообщения от DjFuntik
 
Регистрация: 15.01.2013
Сообщений: 19

Хочу примерно тоже самое что и в вашем варианте, но только у меня оно должно подгружаться из файлов js (находятся в том же каталоге что и сама страничка).
За код не пинайте, я тока учусь...
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<STYLE>
IMG {border-width:0px; margin: 3px; align: center}
.tool_tip {	border-right: #9191a2 1px solid; padding-right: 12px; border-top: #9191a2 1px solid; padding-left: 12px; visibility: hidden; padding-bottom: 12px; font: 900 15px tahoma; border-left: #9191a2 2px solid; color: #9191f2; padding-top: 12px; border-bottom: #9191a2 2px solid; letter-spacing: 2px; position: absolute; background-color: #aafaff}
</STYLE>

<SCRIPT language=JavaScript>
ToolTip.offsetX = - (10 + 400 + 10)
ToolTip.offsetY = 17

var arrT = [], arrImg = []
 
function ToolTip(obj, text)
{
 if (!obj || obj.nodeType != 1) { throw "Illigal argument exception" }
 var tip = document.createElement("DIV")
 arrT.push(tip)
 tip.className = "tool_tip"
 tip.innerHTML = "<CENTER><FONT size=+3>"+text+"</FONT><BR><IMG height=400 width=400 src='"+text+".jpg'><IMG height=400 width=400 src='"+text+".jpg'></CENTER>"
 tip.style.top = 10
 tip.style.left = 10
 document.body.appendChild(tip)
 obj.onmouseout = function(ev)
  { tip.style.visibility = "hidden" }
 obj.onmousemove = function(ev)
  {
   tip.style.visibility = "visible"
   if (window.event) { ev = window.event }
   if (ev.clientX+20+tip.offsetWidth+18 > document.body.clientWidth) { ToolTip.offsetX =- tip.offsetWidth - 20 } else { ToolTip.offsetX = 20 }
   if (ev.clientY+10+tip.offsetHeight+0 > document.body.clientHeight) { ToolTip.offsetY =- tip.offsetHeight - 10 } else { ToolTip.offsetY = 10 }
   tip.style.left = ev.clientX + document.body.scrollLeft + ToolTip.offsetX
   tip.style.top = ev.clientY + document.body.scrollTop + ToolTip.offsetY
  }
}

function RunJava(resurs)
{
 var fso = new ActiveXObject("Scripting.FileSystemObject")
 var b = fso.FileExists(resurs)
 if (b) { eval(fso.OpenTextFile(resurs, 1, 0).ReadAll()) }
}

var colon = new Array()
function stroka(colon)
{
 os += "<TABLE><TR>"
 for (var i = 1; i < colon.length; i++)
  {
   os += "<TD><P>....<IMG tooltip='" + colon[i][1] + "' src='" + colon[i][1]+ ((colon[i][0]=="+")?"":"-") + ".jpg'>...</TD>"
   var img = document.createElement("img")
   arrImg.push(img)
   img.src = colon[i][1]+".jpg"
   ts.appendChild(img)
   ToolTip(img, colon[i][1])
  }
 os+="</TR></TABLE>"
}

function proc(js)
{
 for (var i = 0; i < arrT.length; i++)
  {
   arrT[i].parentNode.removeChild(arrT[i])
   arrImg[i].parentNode.removeChild(arrImg[i])
  }
 arrT = [], arrImg = []
 os = ""
 p = location.href
 p = p.replace("file:///","")
 p = p.replace(/%20/g," ")
 p = p.replace(/\//g,"\\")
 t = p.split('\\')
 RunJava(p.substring(0,p.length - t[t.length - 1].length) + "resurs" + js + ".js")
 ts.innerHTML = os
}
</script>
</head>

<body>
 <script>
  var pp = new Array()
  pp = ["62","96","01"]
  for (var i = 0; i < pp.length; i++)
   document.write("<img src='screens"+(i+1)+".jpg' onclick=proc('"+pp[i]+"')>")
 </script>
 <div id='ts'></div><script>proc('62')</script>
</body>
</html>


resurs01.js
stroka ([["66","#"],["+","А1"],["+","Б1"],["-","В8"],["-","Г4"],["+","Д5"]])
stroka ([["67","#"],["+","А2"],["-","Б3"],["+","В7"],["+","Г9"],["-","Д1"]])
stroka ([["68","#"],["+","А3"],["+","Б5"],["-","В1"],["+","Г2"],["+","Д8"]])

resurs62.js
stroka ([["68","#"],["+","А3"],["+","Б5"],["-","В1"],["+","Г2"],["+","Д8"]])
stroka ([["67","#"],["+","А2"],["-","Б3"],["+","В7"],["+","Г9"],["-","Д1"]])
stroka ([["66","#"],["+","А1"],["+","Б1"],["-","В8"],["-","Г4"],["+","Д5"]])

resurs96.js
stroka ([["66","#"],["+","А1"],["+","Б1"],["-","В8"],["-","Г4"],["+","Д5"]])
stroka ([["68","#"],["+","А3"],["+","Б5"],["-","В1"],["+","Г2"],["+","Д8"]])
stroka ([["67","#"],["+","А2"],["-","Б3"],["+","В7"],["+","Г9"],["-","Д1"]])

Последний раз редактировалось DjFuntik, 26.07.2017 в 10:55.
Ответить с цитированием
  #13 (permalink)  
Старый 26.07.2017, 12:32
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

DjFuntik,
не осилить мне ваш код.
Ответить с цитированием
  #14 (permalink)  
Старый 26.07.2017, 15:03
Интересующийся
Отправить личное сообщение для DjFuntik Посмотреть профиль Найти все сообщения от DjFuntik
 
Регистрация: 15.01.2013
Сообщений: 19

Меня интересуют строки 52-56 и 63-68. Строки 63-67 я так полагаю на своём месте, строка 68 не знаю там ли должна остаться? Строки 52-56 это ваш код, просто не знаю как его подвязать к "IMG tooltip"
Ответить с цитированием
  #15 (permalink)  
Старый 26.07.2017, 15:53
Интересующийся
Отправить личное сообщение для DjFuntik Посмотреть профиль Найти все сообщения от DjFuntik
 
Регистрация: 15.01.2013
Сообщений: 19

Ну или если так не получается понять мой замысел, то тогда подскажите, пожалуйста, как из страницы удалить все "<DIV class='tool_tip'>" вместе с содержимым?
Ответить с цитированием
  #16 (permalink)  
Старый 26.07.2017, 17:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от DjFuntik
удалить все "<DIV class='tool_tip'>" вместе с содержимым?
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>


</head>

<body>
<div class="tool_tip">1</div>
<div class="tool_tip">2</div>
<div class="tool_tip">3</div>
<div class="test">4</div>
<div class="test">5</div>
<div class="tool_tip">6</div>
<div class="tool_tip">7</div>
<div class="tool_tip">8</div>
 <script>
   var div = document.getElementsByTagName('div'), l = div.length, d;
   for (; d = div[--l];)  { if(d.className == 'tool_tip') d.parentNode.removeChild(d)}
 </script>
</body>
</html>
Ответить с цитированием
  #17 (permalink)  
Старый 27.07.2017, 07:17
Интересующийся
Отправить личное сообщение для DjFuntik Посмотреть профиль Найти все сообщения от DjFuntik
 
Регистрация: 15.01.2013
Сообщений: 19

Вот теперь просто наиогромнейшее СПАСИБО!
В отладчике на странице только те объекты, которые присутствуют в текущий момент, остальной исторически накопленный мусор удалён!!!

P.S. уж в дагонку может и вторую (последнюю в моём детище) проблемку поможете решить?
Есть DIV надо его отобразить, загрузить данные, и после окончания загрузки скрыть - ну обычный значёк "LOADING"
<BODY>
<DIV id='waitDiv' style='z-index:1; left: 47%; visibility: visible; position: absolute; top: 50%; text-align: center; background-color=yellow; border-style=groove'><FONT color=red><B><BIG>Идёт загрузка...</BIG></B><BR><IMG src='loading.gif'><BR>Пожалуйста, подождите.</FONT></DIV>
<SCRIPT>
 document.all["waitDiv"].style.visibility = 'visible'
// или document.getElementById('waitDiv').style.display='block'
 RunJava("resurs.js") // может грузиться и отрабатывать аж до 8-10 секунд
 document.all["waitDiv"].style.visibility = 'hidden'
// или document.getElementById('waitDiv').style.display='none'
</SCRIPT>
</BODY>

Проблема в том что значёк не отображается. Если после RunJava поставить alert() или поставить кривой код для заглючивания, то за сообщением будет видно что значёк отображается, если же сбоев и остановок не было, то значёк даже на миллисекунду не отображается. По моей логике не вижу в чём проблема "не отображения". Обыскал кучу интернета, вариантов подходящих для IE без дополнительных библиотек и при том что рабочих не нашёл! Может и тут направите?
Ответить с цитированием
  #18 (permalink)  
Старый 27.07.2017, 07:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

DjFuntik,
может обернуть в
window.onload = function() {
// ваш код
}

чтоб картинка успела загрузится
Ответить с цитированием
  #19 (permalink)  
Старый 27.07.2017, 09:50
Интересующийся
Отправить личное сообщение для DjFuntik Посмотреть профиль Найти все сообщения от DjFuntik
 
Регистрация: 15.01.2013
Сообщений: 19

На сколько я представляю onload к странице будет относиться, а она уже будет загружена, и в ней будет меняться содержимое "DIV ts", т.е. onload не будет срабатывать... или я не прав?
<HTML>
<HEAD>
<META http-equiv="Content-Type" content="text/html; charset=windows-1251">
<SCRIPT language=JavaScript>
function RunJava(resurs)
{
 var fso = new ActiveXObject("Scripting.FileSystemObject")
 var b = fso.FileExists(resurs)
 if (b) { eval(fso.OpenTextFile(resurs, 1, 0).ReadAll()) }
}
 
var colon = new Array()
function stroka(colon)
{
 os += "<TABLE><TR>"
 for (var i = 1; i < colon.length; i++)
  os += "<TD><P>....<IMG src='" + colon[i][1]+ ((colon[i][0]=="+")?"":"-") + ".jpg'>...</TD>"
 os+="</TR></TABLE>"
}
 
function proc(js)
{
 document.all["waitDiv"].style.visibility = 'visible' // или document.getElementById('waitDiv').style.display='block'
 os = ""
 // может грузиться и отрабатывать аж до 8-10 секунд, в загружаемом файле вызов процедуры stroka ([["66","#"],["+","А1"],["+","Б1"],["-","В8"],["-","Г4"],["+","Д5"]]) которая наращивает переменную 'os'
 RunJava("resurs" + js + ".js")
 document.all["waitDiv"].style.visibility = 'hidden' // или document.getElementById('waitDiv').style.display='none'
 ts.innerHTML = os
}
</script>
</head>

<body>
 <img src='screens1.jpg' onclick=proc('62')>
 <img src='screens2.jpg' onclick=proc('96')>
 <img src='screens3.jpg' onclick=proc('01')>
 <DIV id='waitDiv' style='z-index:1; left: 47%; visibility: visible; position: absolute; top: 50%; text-align: center; background-color=yellow; border-style=groove'><FONT color=red><B><BIG>Идёт загрузка...</BIG></B><BR><IMG src='loading.gif'><BR>Пожалуйста, подождите.</FONT></DIV>
 <div id='ts'></div><script>proc('62')</script>
</body>
</html>

Мне нужно чтоб LOADING появлялся не при загрузке страницы, а при вызове proc() и после её отработки он исчезал

Последний раз редактировалось DjFuntik, 27.07.2017 в 09:53.
Ответить с цитированием
  #20 (permalink)  
Старый 27.07.2017, 10:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

DjFuntik,
не знаю как работает ваша RunJava, может эта функция блокирует браузер на всё время загрузки и показывать что либо бесполезно.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов свойств объектов из массива или объекта с параметрами Sanu0074 jQuery 4 22.05.2015 10:18
Как найти точки соприкосновения двух объектов в RaphaelJS Fatalityap Библиотеки/Тулкиты/Фреймворки 3 03.08.2012 16:33
Массив объектов или объект объектов vladlen Общие вопросы Javascript 19 30.10.2010 03:10
удаление объектов и тонкая работа с ними(помогите) digitalbrain Общие вопросы Javascript 4 28.07.2010 21:17
Быстрый поиск объектов Shasoft Общие вопросы Javascript 7 30.07.2009 05:28