JavaScript window.open, только если окно уже не существует

Согласно документации (?prcomp), баллы ПК - это данные, центрированные и масштабированные, если требуется, умноженные на матрицу вращения. Итак, давайте сделаем этот расчет для строки 1 и ПК 1, чтобы проверить. В этом примере я использую объект PCA, образно названный pca.

Сначала мы центрируем первую строку данных, iris[1, 1:4], используя pca$center, а затем масштабируем, используя pca$scale. Наконец, мы умножаем нагрузку на ПК 1, pca$rotation[, 1] и суммируем результат.

# Perform PCA
pca <- prcomp(iris[, 1:4], center = TRUE, scale = TRUE)

# Calculate PC1 score for first row of 'iris'
sum(pca$rotation[,1] * (iris[1, 1:4] - pca$center) / pca$scale)
#> [1] -2.257141

Создано в 2019-01-23 с помощью пакета Представитель (v0.2.1.9000) sup>

Как и ожидалось, мы получаем -2.257141 .

21
задан Community 23 May 2017 в 12:25
поделиться

4 ответа

Я сделал бы это как это - в основном хранят все открытые окна, на которые ссылаются, на самой функции. Когда функция стреляет, проверьте, не существует ли окно или было близко - так, запустите всплывающее окно. Иначе, внимание на существующее всплывающее окно для того запроса.

function launchApplication(l_url, l_windowName)
{
  if ( typeof launchApplication.winRefs == 'undefined' )
  {
    launchApplication.winRefs = {};
  }
  if ( typeof launchApplication.winRefs[l_windowName] == 'undefined' || launchApplication.winRefs[l_windowName].closed )
  {
    var l_width = screen.availWidth;
    var l_height = screen.availHeight;

    var l_params = 'status=1' +
                   ',resizable=1' +
                   ',scrollbars=1' +
                   ',width=' + l_width +
                   ',height=' + l_height +
                   ',left=0' +
                   ',top=0';

    launchApplication.winRefs[l_windowName] = window.open(l_url, l_windowName, l_params);
    launchApplication.winRefs[l_windowName].moveTo(0,0);
    launchApplication.winRefs[l_windowName].resizeTo(l_width, l_height);
  } else {
    launchApplication.winRefs[l_windowName].focus()
  }
}
20
ответ дан Peter Bailey 29 November 2019 в 20:03
поделиться

Можно использовать что-то вроде этого на странице, которая открывает новое окно:

var newWindow = null;

function launchApplication()
{
  // open the new window only if newWindow is null (not opened yet)
  // or if it was closed
  if ((newWindow == null) || (newWindow.closed))
    newWindow = window.open(...);
}
5
ответ дан M4N 29 November 2019 в 20:03
поделиться

Необходимо выполнить 2 теста... 1 проверка, если всплывающее окно определяется, и 2 проверки, если это было закрыто.

if(typeof(winRef) == 'undefined' || winRef.closed){
  //create new
  winRef = window.open(....);
} else {
  //it exists, load new content (if necs.)
  winRef.location.href = 'your new url';
  //give it focus (in case it got burried)
  winRef.focus();
}
20
ответ дан scunliffe 29 November 2019 в 20:03
поделиться

Вы могли проверить как это:

if(!winref || winref.closed)
{
}
2
ответ дан Phaedrus 29 November 2019 в 20:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: