javascript - 在多个函数中访问函数的值

标签 javascript jquery

tl;dr:如何在其他函数中重用第一个函数?如果在其他函数中调用,它会一直返回 undefined。

我创建在线帮助(我不是程序员),不幸的是,它是由 Adob​​e RoboHelp 在框架集中输出的。我想使用下面的第一个函数 (getURL) 来动态构建一个可以在其他函数中重复使用的 URL。例如,在一个函数中将“a”参数作为图形传递,或者使用它在另一个函数中将框架集中的页面作为 mailto: 链接发送。

我遇到的问题是从其他函数中调用 getURL 函数; fullURL 值作为未定义返回。

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');
  });

谢谢!

最佳答案

fullURL 是从 getURL 返回的内容,所以当您需要这些值时调用该函数:

var imageURL = getURL('some_image.png');

fullURL 不存在于 getURL 之外。

关于javascript - 在多个函数中访问函数的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17750735/

相关文章:

javascript - 验证码: "The bind parameter must be an element or id"

javascript - jQuery 根据 div 内的文本删除 5 个特定的 div

javascript - 如何在ckeditor对话框中使输入只读

javascript - 使用 HREF 滚动按钮或修改 <a> 按钮链接的解决方案

jquery - 如何使用 jquery 在页面顶部隐藏下拉菜单?

javascript - 第 3 方脚本破坏了我的 JS

javascript - console.log 触发,但后续 Jquery 调用不执行任何操作

javascript - 在单选按钮更改时

javascript - 如何检查参数是否为对象?

javascript - 选择标签的填充选项