tl; dr:如何在其他函数中重用第一个函数?如果在其他函数中调用,它将继续返回undefined。
我创建了在线帮助(我不是程序员),不幸的是,它是由Adobe RoboHelp在框架集中输出的。我想使用下面的第一个函数(getURL)动态构建一个可以在其他函数中重用的URL。例如,将“a”参数作为图形传递到一个函数中,或者使用它将框架集中的页面作为mailto:链接发送到另一个函数中。
我遇到的问题是从其他函数中调用getURL函数; fullURL值将返回undefined。
function getURL(a) {
var frameURL = window.frames[1].frames[1].document.location,
frameareaname = frameURL.pathname.split('/').slice(4, 5),
frameprojname = frameURL.pathname.split('/').slice(6, 7),
protocol_name = window.location.protocol,
server_name = window.location.host,
fullURL = protocol_name + '//' + server_name + '/robohelp/robo/server/' + frameareaname + '/projects/' + frameprojname + '/' + a;
return fullURL;
}
如果我像这样调用这个函数,它可以正常工作,但如果我将它放在函数中则不行:
getURL('light_bulb.png');
console.log(fullURL);
如何在另一个函数中重用此函数?例如,fullURL应该是背景图像:
$('.Graphic, .GraphicIndent, .Graphic3rd, .Graphic4th').not('.Graphic-norollover').mouseover(function()
{
var imgWidth = $(this).children('img').width();
$(this).css('background', 'url(' + fullURL + ') 50% 50% no-repeat #000');
$(this).css('width', imgWidth);
$(this).children('img').fadeTo(750, '.4');
$(this).children('img').attr('alt', 'Click to view full-size graphic');
$(this).children('img').attr('title', 'Click to view full-size graphic');
});
谢谢!
答案 0 :(得分:3)
fullURL
是从getURL
返回的内容,因此在需要值时调用该函数:
var imageURL = getURL('some_image.png');
fullURL
并不存在于getURL
之外。
答案 1 :(得分:1)
您必须调用该函数才能使用它:
$('.Graphic, .GraphicIndent, .Graphic3rd, .Graphic4th').not('.Graphic-norollover').mouseover(function()
{
var imgWidth = $(this).children('img').width();
$(this).css('background', 'url(' + getURL('light_bulb.png') + ') 50% 50% no-repeat #000');
$(this).css('width', imgWidth);
$(this).children('img').fadeTo(750, '.4');
$(this).children('img').attr('alt', 'Click to view full-size graphic');
$(this).children('img').attr('title', 'Click to view full-size graphic');
});
fullURL
仅限于getURL
功能的范围。它在其他任何地方都看不到。您必须致电getURL
以获取该功能的结果。