JavaScript

  • Автор теми Cris
  • Дата створення

AndruX

(. )( .)
Ответ: JavaScript

Как сделать ссылку для скачивания ТЕКСТОВОГО файла,
тоесть, чтобы он не открылся в браузере, а открылся диалог сохранения? Не предлагайте архивировать, переименовывать и т д... Есть какая то функция? или как это вообще лучше сделать?
 

GrAndSE

Тёмный
Модератор
Ответ: JavaScript

Как сделать ссылку для скачивания ТЕКСТОВОГО файла,
тоесть, чтобы он не открылся в браузере, а открылся диалог сохранения? Не предлагайте архивировать, переименовывать и т д... Есть какая то функция? или как это вообще лучше сделать?
По-моему, всё зависит только от натсроек браузера и насильно так ничего не доказать. По-моему, так сделано опять же из целей безопасности. Проще будет этот текстовый файл заархивировать - тогда точно диалог сохранения будет :)
 

FEOFAN

http://feofan.com
Ответ: JavaScript

Как сделать ссылку для скачивания ТЕКСТОВОГО файла,
тоесть, чтобы он не открылся в браузере, а открылся диалог сохранения? Не предлагайте архивировать, переименовывать и т д... Есть какая то функция? или как это вообще лучше сделать?
Читай про headers и будет тебе счастье.
 

AndruX

(. )( .)
Ответ: JavaScript

а как то яваскриптом можно сэмиторовать headers?
к примеру, если <a href... id=SAM_NAME></a> и по id привязать к функцие при нажании...

Есть мысль: в функции создавать новое окно в котором вставить headers.. с сылкой, но как то это каряво чезезчур имхо... как думаете?
 

FEOFAN

http://feofan.com
Ответ: JavaScript

а как то яваскриптом можно сэмиторовать headers?
к примеру, если <a href... id=SAM_NAME></a> и по id привязать к функцие при нажании...

Есть мысль: в функции создавать новое окно в котором вставить headers.. с сылкой, но как то это каряво чезезчур имхо... как думаете?
Заголовки посылаются только серверной стороной, а не клиентской.
Если ты сделешь линк типа <a href="get_fucking_txt.php?id=123">Download TXT</a>
и в get_fucking_txt.php пошлешь правильные закголовки, то при клике на такой линк произойдет то же самое, что происходит тогда, каогда ты напрмиер кликаешь на линк с зип-архивом.
 

PainKiller

Пастафарианец
Команда форуму
Супер Модератор
Ответ: JavaScript

Вообщем, никогда не работал с яваскриптом, но пришлось.
Времени весь вкуривать нету.
Надо сделать 2 взаимосвязанные формы(государства и области)
Формы типа select.
Когда выбираешь какое либо государство, появляется список в соседней форме его областей или регионов. Надо срочно.
 

Cris

Member
Ответ: JavaScript

поиши в инете, или зайди на любой сайт с регисрацией(например mail.ru) открой сраничку в блокноте, или в фронт пейдже и скопируй, делов та
 

x3mal

In Trance
Нужно написать редактор BBCode.
Для начала хочу разобратся с выделением. Ищу кроссбраузерное решение.
Вот код который есть у меня на данный момент:
function Edit(str1,str2)
{
if (document.selection)
{
document.NewPost.msg.focus();
document.NewPost.document.selection.createRange().text = str1+document.NewPost.document.selection.createRange().text+str2;
}
else {document.NewPost.msg.value += str1+str2;}
}
Тоесть обрамляет выделенный участок текста небходимыми тегами BBCode.
Но данный скрипт работает только в Opere и в IE.
В Chrome и FF он не понимает выделения, и добавляет теги в конец текста.

З.Ы. Скачать готовый WYSIWYG редактор не предлагать. Моя цель разобратся и написать все самому.
 
В хроме потестировать нету возможности, но в FF работает
Код:
/**
* From http://www.massless.org/mozedit/
*/
function mozWrap(txtarea, open, close)
{
	var selLength = txtarea.textLength;
	var selStart = txtarea.selectionStart;
	var selEnd = txtarea.selectionEnd;
	var scrollTop = txtarea.scrollTop;

	if (selEnd == 1 || selEnd == 2) 
	{
		selEnd = selLength;
	}

	var s1 = (txtarea.value).substring(0,selStart);
	var s2 = (txtarea.value).substring(selStart, selEnd)
	var s3 = (txtarea.value).substring(selEnd, selLength);

	txtarea.value = s1 + open + s2 + close + s3;
	txtarea.selectionStart = selEnd + open.length + close.length;
	txtarea.selectionEnd = txtarea.selectionStart;
	txtarea.focus();
	txtarea.scrollTop = scrollTop;

	return;
}

function inserttag(dom, tagopen, tagclose)  
{
	dom = document.getElementById(dom);
	
	var msie = ((navigator.appVersion.indexOf("MSie")!= -1)&&!window.opera)? true : false; 
	
	if (msie) 
	{
        var text = document.selection.createRange().text;
        if ( !text ) 
		{
            dom.value += tagopen + tagclose;
      		dom.focus();
      		return;
		} 
		else 
		{
			document.selection.createRange().text = tagopen + text + tagclose;
			dom.focus();
			return;
		}
	} 
	else if (dom.selectionEnd && (dom.selectionEnd - dom.selectionStart > 0))
	{
		mozWrap(dom, tagopen, tagclose);
		return;
	}
	else
	{
		dom.value += tagopen + tagclose;
		dom.focus();
	}
}
Пример работы -
 
Зверху