问题标签 [shim]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3877 浏览

jquery - jQuery:IE6 中的窗口控件存在问题

我有一个包含选择框的网页。当我打开一个 jQuery 对话框时,它部分显示在选择框的后面。

我应该如何解决这个问题?我应该隐藏选择框还是 jQuery 提供某种“垫片”解决方案。(我用谷歌搜索但没有找到任何东西)

这是一些代码:

0 投票
7 回答
19299 浏览

javascript - iframe shimming 或 ie6(及以下)选择 z-index 错误

嗯,我不确定是否有人遇到过这个问题
,简要说明是在 IE6 上,任何<select>对象都会显示在任何其他项目上,甚至是 div 的......这意味着如果你有一个花哨的 javascript 效果来显示一个应该在顶部的 div一切(例如:灯箱,多框等) onclick 某个元素并且该 div 与<select>您的 div 重叠显示,就好像它在<select>[在这种情况下,最大和最小 z-index 不起作用]

我试过谷歌搜索并找到了 iframe shim 解决方案
,但我想要一些非常干净的替代方案或更好的替代方案,但有人找到更好的解决方案吗?因为使用 iframe 的方法使用大约 130mb 的内存可能会减慢穷人的机器

0 投票
2 回答
773 浏览

javascript - 您曾经在 UL 标签上使用过 IFrame 垫片吗?

我有一个使用 UL 和 LI 元素从主菜单下拉的菜单结构。我遇到的问题(当然)是在 IE6 中,尽管有 z-index,但菜单仍落后于 SELECT 元素。我尝试将 IFram 垫片添加到 UL,其中包含作为菜单项的 LI 元素。问题是 Shim 位于 UL 顶部而不是在其后面,尽管事实上 shim 的 z-index 小于 UL 元素。

0 投票
12 回答
1842 浏览

css - 可接受的 CSS hacks/修复

是否有一个“好的”干净的 CSS hack 列表,它们肯定是面向未来的?

例如,zoom:1它是安全的,只要它只提供给 IE,并且你记得它就在那里。使用子选择器的常见技巧并不安全,因为 IE7 支持它们。使用height:1%感觉很脏(但那可能只是我)。

我知道ie7-js,所以 IE6 的错误并不让我担心。另外,我不是在寻找宗教辩论,只是寻找来源。


感谢您的回复 - 我选择了具有最佳来源的答案作为答案。

也感谢使用单独的 CSS 文件的建议,或者不用担心。我完全同意你的看法,对我来说,这些都是给定的。但是当遇到布局问题时,我想要一个安全的修复程序,将我不得不在 $IE 或 $FF + 1 中重新审视问题的风险降到最低。抱歉,我没有说得更清楚。

0 投票
1 回答
627 浏览

excel-2007 - 自动化插件中的用户定义函数行为不同 Excel 2007

我在 C# .NET 中创建了一个自动化插件,并为其提供了一个 shim dll。shim dll 中包含所有用户定义的方法,这些方法调用 .NET 程序集中的适当方法。

我面临的问题与 Excel 2007 有关。

在 Excel 2003 中, 1. 向工作表添加新形状 2. 插入 >> 函数 >> SUM。出现函数参数对话框 3. 单击新插入的形状而不是单元格 注意:没有任何反应,并且不会在参数框中自动输入单元格值

现在在 Excel 2007 中,1. 插入新形状 2. 公式功能区选项卡 >> 插入函数 >> SUM。出现函数参数对话框 3. 单击新插入的形状 请注意,现在会显示一个错误对话框,上面写着“您键入的公式包含错误”

此对话框针对预定义函数 (SUM) 出现。如果我从 SUM 列表中选择我的函数,则不会显示错误对话框,并且函数参数对话框会消失。然后该单元格显示错误智能标签。

是否需要为每个函数放入 SHIM dll 中的内容?像属性或将显示此错误对话框的东西。或者可能是该方法返回的一些特殊值,以告知参数已生成错误。

COM shim 中定义的函数如下:

0 投票
2 回答
1559 浏览

windows - 有没有办法挂钩或拦截 CoGetClassObject 和/或 CoCreateInstance 调用?

我想拦截 COM CoCreateInstanceEx和/或CoGetClassObject函数,以在单元测试中用测试垫片替换一个类。这仅适用于单个 CLSID;所有其他人都可以通过不变。有没有办法做到这一点没有可怕的,邪恶的黑客?

0 投票
3 回答
1619 浏览

windows - Win32:清单应用程序测试与部署的建议

从 Windows Vista 开始,Microsoft 添加了一类兼容性填充程序,允许假定它具有管理文件注册表访问权限的应用程序继续运行。

换句话说:在Windows XP上失败的应用程序将在Windows Vista上运行。

这些操作系统提供的错误修复可以通过在应用程序清单中添加一个部分来禁用,声明应用程序应该运行asInvoker

理想情况下,开发人员会测试他们的应用程序以确保它不(不必要地)需要管理权限。为了让我对此进行测试,我需要将其显示为Invoker

但归根结底,我不会将应用程序发布给客户,表现为Invoker如果我确实错过了什么,我不希望用户受到影响。我希望微软的操作系统来修正我的错误。此解决方案的问题是:

  • 我必须在发布前修改 manfiest
  • 我永远不会知道我错过的东西,因为它们只是在 Windows Vista 上工作。

类似的难题出现在Windows 7 的supportedOS清单中。您可以将清单添加到应用程序,指示您设计和测试的 Windows 版本:

受支持的操作系统项目的情况下,操作系统预先知道您是为哪个操作系统设计的。如果您不说您支持 Windows 7,这会将您的应用程序置于 Windows Vista 的上下文中:

替代文字
(来源:msdn.com

此操作类似于在某些兼容模式下运行应用程序,例如:

  • Windows Server 2008(服务包 1)
  • Windows Vista(服务包 2)
  • Windows Vista(服务包 1)
  • 视窗
  • Windows Server 2003(服务包 1)
  • Windows XP(服务包 2)
  • 视窗 2000
  • Windows NT 4.0(服务包 5)
  • 视窗 98 / 视窗我
  • 视窗 95

您将在其中应用兼容 shims 的 schmorgasboard,Windows 将模拟旧的未记录行为,以帮助您的应用程序在依赖于该未记录行为时崩溃。

Windows 7 将为在Windows Vista上下文中运行的应用程序提供的兼容性填充程序示例:

  • RPC 将使用旧的私有线程池,而不是 OS 线程池
  • 您将能够锁定主视频桌面显示缓冲区
  • 您将能够在不指定剪辑窗口的情况下Blit到主桌面视频缓冲区
  • 您将容易受到 GetOverlappedResult 竞争条件的影响(如果您依赖它)
  • 您将继续获得程序兼容性助手 (PCA) 缓解

再一次,为了在Windows 7下正确测试我的应用程序,我必须添加supportOS清单条目。但是,再一次,我不会用那个标志来发布应用程序,因为我不想失去这些 shims 的好处(例如 PCA)。再说一次,如果某个应用程序由于在Vista环境中运行而出现了已修复的问题:我永远不会从我们的客户那里知道这件事——因为该应用程序正在运行。


想法?指导?最佳实践?

0 投票
5 回答
5487 浏览

windows - Windows:如何创建自定义 appcompat 垫片(应用程序修复)?

Windows 能够将填充程序应用于行为不端的应用程序。垫片用于拦截 API 调用并对其进行更改。例如,垫片可用于:

  • 更改传入参数
  • 谎报返回值
  • 改变它来调用别的东西

应用程序兼容性工具包有很多现有的垫片,您可以将其应用于您自己的行为不端的应用程序。这是一个忽略您的 API 调用并改为调用完全不同的 API 的示例:

替代文字

我需要一个不是 Microsoft 已经编写的数百个 shim 之一的 shim。我需要一个定制的垫片

就我而言,我想拦截对以下内容的调用:

使其返回0。我找不到任何有关如何为 Windows 提供我自己的 DLL 的信息,该 DLL 将具有我需要的修复程序。我什至不知道您是否可以创建自定义垫片。

Windows 是否支持自定义垫片?

0 投票
8 回答
58311 浏览

terminology - 什么是垫片?

Shim的定义是什么?

0 投票
1 回答
444 浏览

visual-studio - 如何在 MSI 包中导出应用程序及其 SHIM...?

我有一个应用程序 (.exe) 及其 SDB 文件,现在我想将它捆绑到一个 MSI 包中,以便作为安装程序进行部署。如何创建 msi 包?有什么工具吗?可以在 Visual Studio 中完成吗?