小编Mat*_*ach的帖子

css不同家庭的不同字体大小

我有这样的CSS声明:

font-family: font1, font2, font3;
Run Code Online (Sandbox Code Playgroud)

其中font1是一个嵌入式的eot/ttf字体,但问题是这个字体比其他字体小,所以我希望这个字体(font1)有不同的字体大小(1.8em).所有其他字体(font2,font3)保持不变.

问题是,我无法验证用户的浏览器是否使用font1,font2或font3.是否有任何css声明允许不同的家庭使用不同的字体大小?

谢谢.

css fonts

14
推荐指数
1
解决办法
6802
查看次数

授权Google云端硬盘访问服务帐户失败

我参与构建了一个内部使用的应用程序,用户可以通过该应用程序上传文件,存储在Google云端硬盘中.由于建议不要将服务帐户用作文件所有者,因此我希望代表公司系统管理员可以访问的指定用户帐户上载应用程序.

我已经创建了应用程序以及服务帐户.为服务帐户创建了两个密钥,因为我尝试了尝试实现此目的的JSON和PKCS12格式:

API Manager凭据页面

我已经下载了OAuth 2.0客户端ID详细信息,并且还有服务帐户密钥的.json和.p12文件(按上面显示的顺序):

已下载客户端和服务帐户的文件

我让我的系统管理员完成了此处详细说明的步骤,将Drive API访问权限委托给服务帐户:https://developers.google.com/drive/v2/web/delegation#delegate_domain-wide_authority_to_your_service_account

我们发现在步骤4中唯一适用于"客户端名称"的是为Web应用程序列出的"客户端ID"(以.apps.googleusercontent.com结尾).为服务帐户密钥列出的长十六进制ID不是它所需的(见下文):

授权的API客户端访问权限

在上面的内容之前,我有一些代码可以创建一个可以直接上传到服务帐户的DriveService实例,引用服务帐户密钥的.json文件:

private DriveService GetServiceA()
{
    var settings = SettingsProvider.GetInstance();

    string keyFilePath = HostingEnvironment.MapPath("~/App_Data/keyfile.json");
    var scopes = new string[] { DriveService.Scope.Drive };

    var stream = new IO.FileStream(keyFilePath, IO.FileMode.Open, IO.FileAccess.Read);
    var credential = GoogleCredential.FromStream(stream);
    credential = credential.CreateScoped(scopes);

    var service = new DriveService(new BaseClientService.Initializer()
    {
        HttpClientInitializer = credential,
        ApplicationName = "MyAppName"
    });

    return service;
}
Run Code Online (Sandbox Code Playgroud)

这适用于列表和上传,但当然没有用于访问文件的Web UI,并且似乎它不处理诸如权限元数据或生成例如PDF的缩略图之类的内容.这就是我尝试使用标准帐户进行上传的原因.

一旦委托显然已经排序,我就尝试调整上面链接的委托引用中显示的代码,并结合来自其他地方的代码从.json密钥文件中提取必要的细节.使用此代码,只要我尝试执行任何API命令,即使如下这样简单:

FileList fileList = service.FileList().Execute();
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

异常详细信息:Google.Apis.Auth.OAuth2.Responses.TokenResponseException:错误:"unauthorized_client",描述:"请求中未经授权的客户端或范围.",Uri:""

该努力的代码是:

private DriveService GetServiceB()
{
  var settings = SettingsProvider.GetInstance(); …
Run Code Online (Sandbox Code Playgroud)

c# google-drive-api

14
推荐指数
1
解决办法
580
查看次数

从Google表格发布图表会产生固定宽度的结果

客户拥有许多包含数据的Google电子表格,他们从中生成了工作簿中新工作表上的图表。我提供的代码使他们能够发布图表(以前生成了<script>包含JSON 的元素),将发布的JSON复制粘贴到其CMS中,并最终生成了响应 <iframe>。图表的width选项会随时更改以匹配容器,并且在调整浏览器大小时重新加载图表的通常技巧就是保持这种方式。

但是,Google表格已经更新,客户的新图表仅可以发布为“链接”或“嵌入”的选项,后者只是<iframe>前者的包装。由于<iframe>发布的广告具有固定的宽度,因此我更新了代码以处理此替代方法,从而width即时更改了iframe 的属性。

问题是该iframe的内部内容现在完全由Google生成,并且具有固定的width,而不是与包含它的iframe匹配的宽度(我要为其设置宽度)。

我无法通过脚本进入iframe来修改文档,因为它来自其他域。电子表格中嵌入的原始图表具有响应能力(调整包含电子表格的浏览器窗口的大小会非常好地调整图表的大小),但是我看不到任何方法可以在发布期间保持这种效果。

我可以将所有内容移到直接使用可视化API的脚本中,但是然后它没有使用客户端的预先生成的图表(似乎他们生成的每个图表都是不同的样式/布局,这将是维护的噩梦)。

因此:如何从Google表格文档中发布预先存在的图表,并且发布结果的响应方式与原始图表相同?

javascript google-visualization

5
推荐指数
1
解决办法
1170
查看次数

ASP.NET MVC - 如何返回FileResult,而文件是在另一个站点?

我正在写url重定向器.现在我正在努力解决这个问题:

假设我有这种方法:

public FileResult ImageRedirect(string url)
Run Code Online (Sandbox Code Playgroud)

我把这个字符串作为输入传递:http://someurl.com/somedirectory/someimage.someExtension.

现在,我希望我的方法从中下载该图像someurl,并将其作为一个返回File().我怎样才能做到这一点?

c# asp.net asp.net-mvc

3
推荐指数
1
解决办法
1万
查看次数

替换<label>的内容,但包含的表单控件除外

我正在与Janrain的Capture小部件系统集成,客户希望自定义Janrain代码提供的许多标准表单标签.这些定制可能由Janrain制作,但这需要通过他们的开发队列(这将花费太长时间).

他们的建议是捕获一个javascript事件(onCaptureRenderComplete),并在代码中进行必要的更改(这感觉很hacky,但是官方推荐的选项).

我需要更改与复选框关联的标签的文本,其中复选框本身嵌套在标签内.对于其他标签,我们要么只是重写innerHTML,要么使用字符串替换来改变几个单词.我正在处理的标签看起来像:

<label for="capture_traditionalRegistration_traditionalRegistration_privacyPolicy">
    <input type="checkbox" name="traditionalRegistration_privacyPolicy" class="capture_traditionalRegistration_privacyPolicy capture_input_checkbox" value="true" data-capturefield="traditionalRegistration_privacyPolicy" id="capture_traditionalRegistration_traditionalRegistration_privacyPolicy">
    I understand that by signing up or using the site, I agree to the
    <a target="_blank" href="/about-freesat/privacy-policy">Privacy Policy</a> and
    <a target="_blank" href="/about-freesat/terms">Terms of Service</a>
</label>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,在字符串中硬编码的复选框之后将整个HTML块放在一起非常脆弱,以便可以替换它.我想做的只是对所有内容进行全面替换 - 但我无法替换复选框,因为它附带了事件处理程序.

我有jQuery可用.如何删除或替换任何建议,只是复选框后的部分?

html javascript

3
推荐指数
1
解决办法
102
查看次数

C# - 允许在同一个类中混合使用私有构造函数和非私有参数构造函数吗?

退伍军人请原谅我提出愚蠢的问题.我知道具有私有构造函数的类会阻止实例创建.

class InterestRate
{
    // static constructor
    static InterestRate()
    {
    }

    //private constructor
    private InterestRate()
    {
    }

    // private overloaded constructor
    private InterestRate(double d1,double d2)
    {
    }

    // overloaded constructor    
    public InterestRate(int a,int b)
    {
        Console.WriteLine("a={0},b={0}",a,b);
    }
}

static void Main()
{
    //As it is private constructor invokation i can not create a instance
    InterestRate firstInstance=new InterestRate();

    // non-private overloaded constructor allow me to craete instance 
    InterestRate r=new InterestRate(10,10);
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果具有私有构造函数的类阻止实例创建,为什么该类支持具有非私有构造函数?

c#

2
推荐指数
1
解决办法
669
查看次数

"语法错误"在T-SQL查询的SELECT子句中使用表值函数

我有以下表值函数来分割字符串.这工作正常,从网络上的其他地方抄袭,我认为这不是问题的原因,但包含在相关的情况下:

CREATE FUNCTION dbo.StringSplit (@sep char(1), @s varchar(512))
RETURNS table
AS
RETURN (
  WITH Pieces(pn, start, stop) AS (
    SELECT 1, 1, CHARINDEX(@sep, @s)
    UNION ALL
    SELECT pn + 1, stop + 1, CHARINDEX(@sep, @s, stop + 1)
      FROM Pieces
    WHERE stop > 0
  )
  SELECT pn,
    SUBSTRING(@s, start, CASE WHEN stop > 0 THEN stop-start ELSE 512 END) AS s
  FROM Pieces
)
GO
Run Code Online (Sandbox Code Playgroud)

这将启用以下行:

SELECT * FROM dbo.StringSplit('.', 'this.is.a.string.to.split')
Run Code Online (Sandbox Code Playgroud)

生产

 pn | s
----+--------
 1  | this
 2 …

t-sql sql-server

2
推荐指数
1
解决办法
4017
查看次数

使用Json.Net进行条件数组/对象反序列化

我正在使用Json.Net库(用于.NET v3.5)来处理来自EBoss CRM API的响应的反序列化.据我所知,API文档相当不稳定,所以我不得不自己动手来看看可以引出什么样的响应.

我希望有一个包装类EBossApiResponse<T>,它可以为API发回的任何错误消息提供属性,还有一个包含反序列化数据类型的属性T(它将被限制为一个抽象基类,它充当任何类的基础类型我创建了模型返回的数据).

我最初的探讨揭示了第一个问题.有效请求可以返回一组对象,例如:https://ebosscrm.com/api.php/job_type.json

这很容易反序列化为假设TList<EBossJobType>.请注意,结果中没有错误属性.

但是,对同一端点的格式错误的请求会返回不同的内容:https://ebosscrm.com/api.php/job_type.json?search [foo] = 1

在这种情况下,返回一个数组,其中包含一个名为的单个属性的对象message.

(注意,有一个名为参数的调用search[something]有效,但foo永远不会有效something)

还可能返回显式错误.在我看来,API正在捕获异常并格式化包含调试信息的JSON响应:https://ebosscrm.com/api.php/candidates.json?uid = 114&api_key = f34js3kj

在这种情况下,返回的JSON不是数组,而是单个对象.我不确定如何迎合这些不同的响应结构.我最初的想法是:

protected bool IsNonDataResponse(string response)
{
    JObject o = JObject.Parse(response);
    return o.SelectToken("message") != null || o.SelectToken("error") != null;
}
Run Code Online (Sandbox Code Playgroud)

我可以使用此方法然后直接反序列化为正确的EBossApiResponse<T>类型(如果为true,填充错误消息但保留.Data属性== null),或反序列化到右侧List<EBossEntityType>,创建一个新的EBossApiResponse<List<EBossEntityType>>,并设置其.Data属性.

然后我意识到这o.SelectToken("message")将无法工作,因为o它将是一个数组,而不是一个对象.可以.SelectToken() …

c# json.net

0
推荐指数
1
解决办法
1874
查看次数