在相关文章(here)中,我讨论了SQL Server Reporting Services报表中的URL操作存在的问题。我以为我已经解决了问题,但是现在我意识到自己还没有。 (我将在适当的时候更新相关的帖子。)
我正在使用字符串连接和Javascript生成URL,因此该URL在新的浏览器选项卡中打开。这是生成URL的代码,我认为这是非常标准的:
="javascript:void(window.open('http://www.ic.gc.ca/app/opic-cipo/trdmrks/srch/viewTrademark?id="
+ Fields!applicationNoWithExtn.Value
+ "&lang=eng&tab=reg','_blank'))"
下面是插入值时生成的URL的示例:
http://www.ic.gc.ca/app/opic-cipo/trdmrks/srch/viewTrademark?id=159511-00&lang=eng&tab=reg
生成的URL有效。它会将您带到在线数据库网页上,申请号为159511-00的加拿大商标(您在该网页上看不到后缀“ -00”,但这是正确的申请号)。
问题在于,当用户单击生成的URL时,浏览器的打印对话框将在网页打开后立即打开。这很让人分心;用户必须单击“取消”以关闭打印对话框。如果在浏览器中重新加载或刷新了网页,浏览器的“打印”对话框将再次打开。但是,如果我复制URL并将其粘贴到新的浏览器选项卡中,则会得到所需的网页,而没有打印对话框。我不明白它是相同的URL,但是由我的应用程序生成的URL版本以某种方式触发了打印对话框,而相同URL的复制/粘贴版本却没有。我尝试使用不同的浏览器(Chrome,Edge和IE)和不同的计算机,但是当我单击由应用程序生成的URL时,会一直显示该打印对话框。如果我更改代码以生成诸如http://google.com之类的标准URL,则生成的标准URL将起作用而不会触发打印对话框。因此问题似乎出在我通过上面显示的串联URL访问的特定网站上。
任何人都可以解释发生了什么事以及如何抑制该打印对话框吗?