Как внести данные в WebSQL?

Делаю приложение для Chrom.
Для хранения некоторых данных был выбран WebSQL.

Сама база создается.
function baza (f) {
	bd = openDatabase("linkDemo","1.0","Количество вкладок",1024*1024*5);
	switch (f) {
		case "open":
			bd.transaction(function(tx){
				tx.executeSql("CREATE TABLE IF NOT EXISTS todo (ID INTEGER PRIMARY KEY ASC,todo_item TEXT,due_date VARCHAR)");
			})
			break
		case "save":
			bd.transaction(function(tx){
				tx.executeSql("INSERT INTO todo (todo_item,due_date) VALUES (?,?)", ["Яндкс","ya.ru"])
			})
			break
		case "load":
			// Загрузка из БД
		default:
			alert ('Не задано действие')
			break
	}
}
onload  = function () { 

	// Некоторые действия при загрузки

	baza ("open")
}

А вот данные как-то неохотно вставляются
function savenewlink (){
	// Сбор данных из формы
	baza ("save") // и будут вноситься в функция

	//А вот здесь самое интересное
//	alert ('Закончили')
}

Если стоит alert() - то данные вносятся в таблицу WebSQL, а если он закомментирован (отсутствует) - то данные не вносятся.

Сама функция вызывается при помощи addEventListener()
document.addEventListener( "DOMContentLoaded" , function () {
	// Несколько других событий
	document.getElementById("savelink").addEventListener( "click" , savenewlink);
});

Это связано с безопасностью Chrome, которую я не знаю как обойти. При использование onclick появляется ошибка:
Refused to execute inline event handler because it violates the following Content Security Policy directive: "script-src 'self' chrome-extension-resource:".

Как внести эти данные без alert()?
Как alert() влияет на работу скрипта?
Можно ли как-то обойти ограничения политики безопасности?
  • Вопрос задан
  • 2925 просмотров
Решения вопроса 1
Atlant_T
@Atlant_T Автор вопроса
Как всегда: стоит задать вопрос как ответ приходит сам.
Проблема оказалась в другом месте.
addEventListener() был привязан к тегу , который после нажатия вызывал перезагрузку страницы и в итоге терялись данные.
alert() давал возможность внесения данных (хотя по какому принципу мне не совсем понятно) во время остановки скрипта.

Проблему решил привязав событие к тегу .

Пусть гуру меня поправят, если что-то не так.
Старая шутка о нелегкой жизни програмиста

Маркетолог спрашивает программиста: в чём сложность поддержки большого проекта?

Программист: ну представь, что ты писатель и поддерживаешь проект «Война и мир». У тебя ТЗ — написать главу, как Наташа Ростова гуляла под дождём по парку. Ты пишешь «шёл дождь», сохраняешь, вылетает сообщение об ошибке «Наташа Ростова умерла, продолжение невозможно». Почему умерла? Начинаешь разбираться. Выясняется, что у Пьера Безухова скользкие туфли, он упал, его пистолет ударился о землю и выстрелил в столб, а пуля от столба срикошетила в Наташу. Что делать? Зарядить пистолет холостыми? Поменять туфли? Решили убрать столб. Получаем сообщение «Поручик ржевский умер.» Выясняется, что он в следующей главе облокачивается о столб, которого уже нет…
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы