Один лайнер:
Object.assign(document.createElement('a'), { target: '_blank', href: 'URL_HERE'}).click();
или
С помощью jQuery я использую этот:
var url = "http://google.com";
$("<a>").attr("href", url).attr("target", "_blank")[0].click();
Он создает виртуальную a
элемент, дает ему target="_blank"
, поэтому он открывается в новой вкладке, дает ему url
href
и затем нажимает на него.
И если вы хотите, на основе этого вы можете создать некоторую функцию:
function openInNewTab(url) {
$("<a>").attr("href", url).attr("target", "_blank")[0].click();
}
, а затем вы можете использовать его как:
openInNewTab("http://google.com");
Для сценария, отличного от jQuery, функция будет выглядеть так:
function openInNewTab(url) {
var a = document.createElement("a");
a.target = "_blank";
a.href = url;
a.click();
}
// And then
openInNewTab("http://google.com");
Почему нет:
UPDATE 'recursive' SET 'parent_id' = NULL WHERE 'parent_id' IS NOT NULL;
DELETE FROM 'recursive';
?
Если Вы просто хотите освободить все это, для тестирования используйте:
SET FOREIGN_KEY_CHECKS = 0;
// Execute Query
SET FOREIGN_KEY_CHECKS = 1;
Это полностью обходит любые проверки внешнего ключа.
Ну, Вы могли добавить ON DELETE CASCADE
к FOREIGN KEY
определение... по крайней мере временно. Это позволило бы Вам усекать таблицу путем удаления строк, на которые ссылаются, сначала.
существуют другие ON DELETE
типы также; значение по умолчанию ON DELETE NO ACTION
.
Или просто удалите (рекурсивное) ограничение внешнего ключа, затем усеките таблицу, затем повторно добавьте ограничение.
Неоднократно выбирайте строки, которые не появляются как родители и удаляют их, пока таблица не пуста. (Принимающий нет никаких циклов...)