jQuery PrettyPhoto передающий идентификатор к iframe

Вы можете использовать Type.InvokeMember для этого.

private void SetObjectProperty(string propertyName, string value, rel objName) 
{ 
    objName.GetType().InvokeMember(propertyName, 
        BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty, 
        Type.DefaultBinder, objName, value); 
} 

5
задан Paolo Bergantino 3 June 2009 в 12:58
поделиться

2 ответа

Я выпустил новую версию prettyPhoto, которая исправляет ошибку, если вы не хотите ее взламывать.

Посетите страницу проекта: http: // www .no-margin-for-errors.com / projects / prettyPhoto-jquery-lightbox-clone /

5
ответ дан 13 December 2019 в 19:34
поделиться

Ваша проблема кроется в самом prettyPhoto. Плагин предполагает (в случае iframe), что в этом URL-адресе нет других важных параметров, и удаляет их все после анализа высоты и ширины.

Вот фрагмент из неминифицированной версии jquery.prettyPhoto.js. Обратите внимание на третью строку, где она удаляет все после вопросительного знака в movie_url.

    }else if(pp_type == 'iframe'){
      movie_url = $caller.attr('href');
      movie_url = movie_url.substr(0,movie_url.indexOf('?'));

      pp_typeMarkup = '<iframe src ="'+movie_url+'" width="'+(correctSizes['width']-10)+'" height="'+(correctSizes['height']-10)+'" frameborder="no"></iframe>';
    }

Я не уверен, насколько вы бесстрашны, но если вы закомментируете эту третью строку, это сработает для вас. (вы, вероятно, захотите повторно минифицировать позже, см.: http://fmarcia.info/jsmin/test.html )

    }else if(pp_type == 'iframe'){
      movie_url = $caller.attr('href');
      // movie_url = movie_url.substr(0,movie_url.indexOf('?')); // commented out to allow other attributes to be passed along.

      pp_typeMarkup = '<iframe src ="'+movie_url+'" width="'+(correctSizes['width']-10)+'" height="'+(correctSizes['height']-10)+'" frameborder="no"></iframe>';
    }
6
ответ дан 13 December 2019 в 19:34
поделиться
Другие вопросы по тегам:

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