Ruby on rails Excel链接不会加载页面,但当链接粘贴到浏览器中时,它会工作。
我通过RubyonRails应用程序在excel电子表格中放置了超链接。这些链接是指向一些特权页面的,这些页面需要在登录后我被带到请求的页面。然而,所发生的是,在登录到网站主页上后,I lang。有趣的是,当我在excel中右键单击该链接并将其粘贴到web浏览器url中时,它会按预期工作。所以我认为这不是我的应用程序的错,而是excel中我缺少的东西 我的场景与此场景基本相同:Ruby on rails Excel链接不会加载页面,但当链接粘贴到浏览器中时,它会工作。,ruby-on-rails,excel,hyperlink,Ruby On Rails,Excel,Hyperlink,我通过RubyonRails应用程序在excel电子表格中放置了超链接。这些链接是指向一些特权页面的,这些页面需要在登录后我被带到请求的页面。然而,所发生的是,在登录到网站主页上后,I lang。有趣的是,当我在excel中右键单击该链接并将其粘贴到web浏览器url中时,它会按预期工作。所以我认为这不是我的应用程序的错,而是excel中我缺少的东西 我的场景与此场景基本相同: 我不确定这是否是一个真正的答案,但我的应用程序也有同样的问题 整个应用程序,包括主页,都受到保护(我使用的是Desiv
我不确定这是否是一个真正的答案,但我的应用程序也有同样的问题 整个应用程序,包括主页,都受到保护(我使用的是Desive)。 因此,每当用户想要访问时,它都会将其重定向到 我认为Deave使用301或302重定向到登录屏幕 我的发现是,在Office中单击的链接和在IE中打开的链接无法适应这种重定向(当Chrome是默认浏览器时,没有问题)。它与您的设置匹配吗 最终,我没有找到其他解决方案,只能直接链接到登录页面。。。也许还有其他选择,但我仍在寻找 编辑:发现这篇文章(2006年)完全符合我们的情况。
同样,这不是一个解决方案,但至少是一个解释。这个问题通常发生在IE中,我也面临同样的问题 解决这个问题的方法很简单
请稍候,正在加载您的页面。。。
函数getQuerystring(键){
key=key.replace(/[\[]/,“\\\[”)。replace(/[\]]/,“\\\]”);
var regex=new RegExp(“[\\?&]”+key+“=([^&\]*)”;
var query=regex.exec(window.location.href);
返回查询[1];
}
window.location=window.location.protocol+“/”+window.location.host+“/”+getQuerystring('page');
当用户单击excel中的链接时,它指向redirect.html,javascript构建实际URL并再次重定向到正确的页面,如果用户已登录,则将导航到实际页面,否则将重定向到登录/主页。这是excel的问题,它与现代web设计模式存在问题(例如,会话+重定向) 这里有一个客户端解决方案,它绕过Excel的内部机制,而是使用OS默认URL处理程序。请注意,由于它使用宏,因此这种方法需要适当的安全设置 在工作表的VBA模块中,添加以下代码:
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hWnd As Long, _
ByVal Operation As String, _
ByVal Filename As String, _
Optional ByVal Parameters As String, _
Optional ByVal Directory As String, _
Optional ByVal WindowStyle As Long = vbMinimizedFocus _
) As Long
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
ShellExecute 0, "Open", Target.Address
End Sub
这是基于SO答案的答案。您确定超链接文本和URL相同吗?文本可能显示完整地址(因此在粘贴副本时有效)但基础URL的格式不正确?我复制它的方式是在excel工作表中右键单击它,然后将“地址”字段中的所有内容复制粘贴到浏览器,这样可以工作。如果已经登录,复制粘贴链接会将我带到页面,但在excel中单击相同的链接会将我带到登录页面(然后是主页)Chrome是我的默认浏览器。这个错误在Firefox和Chrome上都可以重现。不过我还没有在IE上检查过。谢谢你的帮助!一定要发布你提出的任何解决方案。上面提到的错误与我们的情况完全匹配。我无法访问服务器,@Bharath提出的另一个解决方案不起作用对我来说。所以这个答案不是答案,但至少是一个解释,它应该被标记为有效。感谢Pierre的研究。MS QA不太容易获得。我尽了最大努力并将问题发布在了上。我希望这个错误会从ASP.NET论坛传播到Excel工程。如果你知道更好的联系方式,请随时联系他们!
Option Explicit
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hWnd As Long, _
ByVal Operation As String, _
ByVal Filename As String, _
Optional ByVal Parameters As String, _
Optional ByVal Directory As String, _
Optional ByVal WindowStyle As Long = vbMinimizedFocus _
) As Long
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
ShellExecute 0, "Open", Target.Address
End Sub