Javascript.RU

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

Но все же, подскажите правильное решение! Приведенный выше код работает, но на webkit выводит(и это понятно!), только путь к файлу не запуская его... Необходимо запустить найденную веб-страницу! Браузер и так сильно "тормозит", ресурсы ОС минимальные! Подскажите лаконичное решение!!!
Ответить с цитированием
  #12 (permalink)  
Старый 27.08.2012, 08:43
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Stef
но на webkit выводит(и это понятно!), только путь к файлу
<input type="file" onchange="alert(this.value)">

вы видели этот путь, это не реальный путь к файлу: максимум оттуда можно вычленить имя диска и название файла
Ответить с цитированием
  #13 (permalink)  
Старый 27.08.2012, 20:42
Интересующийся
Отправить личное сообщение для Stef Посмотреть профиль Найти все сообщения от Stef
 
Регистрация: 26.08.2012
Сообщений: 13

А вот такой код - работает на движке WebKit:
<!DOCTYPE html>
<html>
 <head>
<title></title>
</head> 
<input type="file" id="files" name="files[]" multiple />
<output id="list"></output>
<script>
  function handleFileSelect(evt) {
    var files = evt.target.files; // FileList object
    // files is a FileList of File objects. List some properties.
    var output = [];
    for (var i = 0, f; f = files[i]; i++) {
      output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ',
                  f.size, ' bytes, last modified: ',
                  f.lastModifiedDate.toLocaleDateString(), '</li>');
    }
    document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>';
  }
  document.getElementById('files').addEventListener('change', handleFileSelect, false);
</script>
</html>

Подскажите, как можно его минимизировать, чтобы запускались только html файлы?
P.S. Кстати, по предыдущему примеру -"перетаскивание" файла из окна поиска, в окно браузера - запускает его, т.е. выбранная веб-страница открывается!
Ответить с цитированием
  #14 (permalink)  
Старый 27.08.2012, 21:22
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

<input type="file" onchange = "location.href = window.webkitURL.createObjectURL(event.target.files[0])">


<input type="file">

<script>
//хром и FF
document.body.children[0].onchange = function (e) {
	window.URL = window.URL || webkitURL;
	var file = e.target.files[0];
	if (file.type.indexOf('html') != - 1) {
		window.location.href = window.URL.createObjectURL(file);
	}
}
</script>


<input type="file">

<script>
//хром, FF, IE
document.body.children[0].onchange = function (e) {
	if (navigator.userAgent.indexOf('MSIE') != -1) {
		var url = this.value; 
		if (url.indexOf('html') != -1 || url.indexOf('htm') != -1) {
			window.location.href = url;
		}
	} else {
		window.URL = window.URL || webkitURL;
		var file = e.target.files[0];
		if (file.type.indexOf('html') != - 1) {
			window.location.href = window.URL.createObjectURL(file);
		}
	}
}
</script>

Последний раз редактировалось bes, 28.08.2012 в 00:40.
Ответить с цитированием
  #15 (permalink)  
Старый 28.08.2012, 00:52
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Под оперу только осталось как-то докрутить
Ответить с цитированием
  #16 (permalink)  
Старый 28.08.2012, 01:44
Интересующийся
Отправить личное сообщение для Stef Посмотреть профиль Найти все сообщения от Stef
 
Регистрация: 26.08.2012
Сообщений: 13

Очень изящное и лаконичное решение!!! Прямо на страницу учебника! Огромное спасибо за науку! Однако с QtWebKit, программа работает не совсем корректно В окне браузера, после выбора нужного файла *.html в окошке QtOpen, вместо запуска веб-страницы, рядом с кнопкой "Choose File", появляется полный путь к файлу:
file:///usr/local/etc/.../*.html
Приходится создавать дополнительную форму типа:
<!DOCTYPE html>
<html>
 <head>
<title></title>
</head> 
	 <script>
 function urlJump()
    {
      var szNewURL="";
      szNewURL=prompt("open URL ", "name");
      window.location.href=szNewURL;
    }	
	</script> 
<form name="selectForm">
      <p><input type="button" value="GO!" onClick="urlJump();">
</html>

Копировать в поле формы полный адрес, только тогда веб-страница запускается.
В моем случае - это уже огромный прогресс! Подскажите, можно ли, чтобы полученный с помощью Вашей программы полный URL, сразу попадал в поле другой формы?
Ответить с цитированием
  #17 (permalink)  
Старый 28.08.2012, 09:32
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

<input type="file" onkeyup="alert(event.keyCode)">

<script>
//хром и FF
document.body.children[0].onchange = function (e) {
	window.URL = window.URL || webkitURL;
	var file = e.target.files[0];
	if (file.type.indexOf('html') != - 1) {
		window.location.href = prompt('url', window.URL.createObjectURL(file));
	}
}
</script>

Последний раз редактировалось bes, 28.08.2012 в 10:40.
Ответить с цитированием
  #18 (permalink)  
Старый 28.08.2012, 10:29
Интересующийся
Отправить личное сообщение для Stef Посмотреть профиль Найти все сообщения от Stef
 
Регистрация: 26.08.2012
Сообщений: 13

Спасибо! Мне кажется, хотя может быть это и дилетантский взгляд, что такое решение будет универсальным. input type="file" - вызывает появление кнопки "Найти" ("Choose File"), при ее активации браузер обращается к ресурсам ОС, появляется окно поиска. Когда файл найден, событие отображается, по разному. В IE и FF - появляется поле со строкой пути к файлу, в Crome(WebKit), просто возле кнопки отображается имя файла. Появление новой формы, с полным указанием пути к файлу, должно работать в браузере любой ОС! В Опере не пробовал, но думаю тоже будет работать... Еще раз - огромное спасибо!
Ответить с цитированием
  #19 (permalink)  
Старый 28.08.2012, 10:33
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от Stef
В Опере не пробовал, но думаю тоже будет работать
В Опере запускается только при открытии локального файла HTML и в нем уже могут быть скрипты
Ответить с цитированием
  #20 (permalink)  
Старый 28.08.2012, 10:36
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

с оперой не знаю чего делать, она хитрож-я, суёт fakepath везде
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как извлекать данные из веб страницы sistemnik Общие вопросы Javascript 1 04.09.2011 17:45
Запуск скрипта по завершению загрузки страницы EugenyK Events/DOM/Window 4 27.05.2011 11:08
Запуск скрипта после загрузки страницы vital8 Элементы интерфейса 2 24.09.2009 18:06
запуск локального приложения maximt Общие вопросы Javascript 7 20.04.2009 17:54