2013-06-03 2 views
0

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

Способ, которым у меня установлена ​​эта настройка, будет щелкнуть ссылку с eblast, которую мы отправляем, и когда страница загрузит видео, появится сообщение о выбранной ссылке.

Вот веб-сайт, и если вы нажмете на изображение или заголовок, оно появится всплывающее окно. Для этого я использую prettyPhoto. http://dynamicdevsite.com/cmdnyc/audio-post-production-nyc.php

Я установка синтаксического анализа URL, так что мои ссылки выглядят как этот http://dynamicdevsite.com/cmdnyc/audio-post-production-nyc.php?ComedyCentral и URL анализатор видит ComedyCentral, а затем запускает функцию я связанная с этим термином и что пожары просто отлично.

Код для ссылки клик моделирования

function simulatedClick(target, options) { 

     var event = target.ownerDocument.createEvent('MouseEvents'), 
      options = options || {}; 

     //Set your default options to the right of || 
     var opts = { 
      type: options.type     || 'click', 
      canBubble:options.canBubble    || true, 
      cancelable:options.cancelable   || true, 
      view:options.view      || target.ownerDocument.defaultView, 
      detail:options.detail     || 1, 
      screenX:options.screenX     || 0, //The coordinates within the entire page 
      screenY:options.screenY     || 0, 
      clientX:options.clientX     || 0, //The coordinates within the viewport 
      clientY:options.clientY     || 0, 
      ctrlKey:options.ctrlKey     || false, 
      altKey:options.altKey     || false, 
      shiftKey:options.shiftKey    || false, 
      metaKey:options.metaKey     || false, //I *think* 'meta' is 'Cmd/Apple' on Mac, and 'Windows key' on Win. Not sure, though! 
      button:options.button     || 0, //0 = left, 1 = middle, 2 = right 
      relatedTarget:options.relatedTarget  || null, 
     } 

     //Pass in the options 
     event.initMouseEvent(
      opts.type, 
      opts.canBubble, 
      opts.cancelable, 
      opts.view, 
      opts.detail, 
      opts.screenX, 
      opts.screenY, 
      opts.clientX, 
      opts.clientY, 
      opts.ctrlKey, 
      opts.altKey, 
      opts.shiftKey, 
      opts.metaKey, 
      opts.button, 
      opts.relatedTarget 
     ); 

     //Fire the event 
     target.dispatchEvent(event); 
    } 

function CC_Lightbox() { 
     simulatedClick(document.getElementById("comedylink")); 

} 

ОШИБКА
Uncaught TypeError: Не удается прочитать свойство 'ownerDocument' нулевых

Примечание: Я извиняюсь, если этот вопрос является слишком локализован, но я не знал, кто и где еще спросить на этом этапе.

+0

Является ли JQuery вариантом? – Shenaniganz

+1

В первом аргументе есть вызов вашей функции с 'null'. –

+0

ну, похоже, нет такого dom-объекта, как 'comedylink'. Вы уверены, что используете атрибут id, чтобы идентифицировать его, а не «имя»? – Sebas

ответ

1

Я использую этот код, чтобы сделать это

// change to this line 
var evt = document.createEvent("MouseEvents"); 

evt.initMouseEvent('click',true,true,window,0,0,0,0,0,false,false,false,false,0,null); 
element.dispatchEvent(evt); 

Первая строка должна исправить код.

Затем измените

var event = target.ownerDocument.createEvent('MouseEvents'), 

в

var event = document.createEvent("MouseEvents"), 

Это должно создать правильное событие и исправить ошибку

Uncaught TypeError: Cannot read property 'ownerDocument' of null 

.

+0

, и это сделает мой лайтбокс всплывающим? –

+0

и как бы реализовать его в своей функции? –

+0

Я получил эту ошибку, которая является той же, но на новой строке дальше вниз. Неподготовлено TypeError: Не удается прочитать свойство «ownerDocument» из null –

Смежные вопросы