クラス名や「rel」アトリビュートを指定して、新規ウィンドウで開く
rel New Window
class New Window
HTML属性にウィンドウ名「window_name」、オプション「window_option」を指定した
rel属性を指定した querySelectorAll() で NodeList を取得して click イベントを登録 (IEだと単にループで回せないので、一工夫必要)
function loadPopupRelEvent(rel_name) {
var popupEvent = function(event) {
var window_name = '_blank';
var window_option = null;
if (this.getAttribute('window_name')) window_name = this.getAttribute('window_name');
if (this.getAttribute('window_option')) window_option = this.getAttribute('window_option');
window.open(this.href, window_name, window_option).focus()
event.preventDefault();
event.stopPropagation();
}
var query_string = '[rel = "' + rel_name + '"]';
let elements = document.querySelectorAll(query_string);
if (!elements) return;
[].forEach.call(elements, function (element) {
element.addEventListener('click', popupEvent, false);
});
}
document.addEventListener('DOMContentLoaded', function () {
loadPopupRelEvent('popup', params);
});
getElementsByClassName() で HTMLCollection を取得して click イベントを登録 (IEだと単にループで回せないので、一工夫必要)
function loadPopupClassEvent(class_name) {
var popupEvent = function(event) {
var window_name = '_blank';
var window_option = null;
if (this.getAttribute('window_name')) window_name = this.getAttribute('window_name');
if (this.getAttribute('window_option')) window_option = this.getAttribute('window_option');
window.open(this.href, window_name, window_option).focus()
event.preventDefault();
event.stopPropagation();
}
let elements = document.getElementsByClassName(class_name);
if (!elements) return;
[].forEach.call(elements, function (element) {
element.addEventListener('click', popupEvent, false);
});
}
document.addEventListener('DOMContentLoaded', function () {
loadPopupClassEvent('popup_class', params);
});
要素にclickイベントを登録し、正規表現でURLパースする