Если вы не хотите, чтобы изображение загружалось на той же странице, не делайте этого! :
window.location.href = bigimg;
Или вы хотели, чтобы изображение там было так же, как и всплывающее окно?
*
~~~ * 1006
Что касается замены подстановочного знака, это легко. Изменения:
var bigimg = imgurl.replace("/thumbs/75x60/", "/photos/");
Кому:
var bigimg = imgurl.replace(/\/thumbs\/[0-9x]+\//i, "/photos/");
~~~
Изменение размера всплывающего окна становится сложным Вы действительно хотите всплывающее окно при наведении курсора мыши? Подойдет ли увеличенное изображение эстакады?
Я не рекомендую использовать фактическое всплывающее окно (window.open()
) для отображения больших изображений. Из-за блокировок безопасности и межсайтовых ограничений это может быть очень проблематично. Но это возможно с Greasemonkey.
Вместо этого я рекомендую вам показать изображение в псевдо-всплывающем диалоге. Сделайте это, вставив <div>
, то есть position: absolute;
и имеет высокий z-index
.
Событие mouseenter
тогда изменит src
изображения внутри div.
Собираем все вместе, вот полный скрипт Greasemonkey, который генерирует простые всплывающие изображения при наведении мыши:
Вы можете увидеть код в действии на jsBin .
// ==UserScript==
// @name _Popup Image Flyover, Mark I
// @include http://YOUR_SERVER/YOUR_PATH/*
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js
// ==/UserScript==
/*--- Create the div and the image that will be pointed to our large
pictures.
*/
$("body").append ('<div id="idLargePicturePopupWindow"><img></div>');
/*--- In case the popup covers the current mouse position, it must also
trigger the hover change. This avoids certain annoying blinking
scenarios.
*/
$('#idLargePicturePopupWindow').bind (
"mouseenter mouseleave",
{bInPopup: true},
myImageHover
);
/*--- Activate the mouseover on the desired images on the target page.
*/
$('#profPhotos .profPhotoLink > img').bind (
"mouseenter mouseleave",
{bInPopup: false},
myImageHover
);
function myImageHover (zEvent) {
if (zEvent.type == 'mouseenter') {
if ( ! zEvent.data.bInPopup) {
var imgurl = this.src.toString();
/*--- Need to replace '/thumbs/75x60/' part with '/photos/'
to get the full size image.
*/
var bigimg = imgurl.replace(/\/thumbs\/[0-9x]+\//i, "/photos/");
$("#idLargePicturePopupWindow img").attr ('src', bigimg);
}
$("#idLargePicturePopupWindow").show ();
}
else {
$("#idLargePicturePopupWindow").hide ();
}
}
/*--- Here we add the CSS styles that make this approach work.
*/
GM_addStyle ( (<><![CDATA[
#idLargePicturePopupWindow {
position: absolute;
background: white;
border: 3px double blue;
margin: 1ex;
opacity: 1.0;
z-index: 1222;
min-height: 100px;
min-width: 200px;
padding: 0;
display: none;
top: 10em;
left: 10em;
}
#idLargePicturePopupWindow img {
margin: 0;
margin-bottom: -4px;
padding: 0;
}
]]></>).toString () );