小编Sen*_*ful的帖子

在来自不同域的iFrame上运行bookmarklet

有没有办法在来自不同域的iFrame上运行bookmarklet?

例如,我有一个从http://example.com加载的页面,它有一个iFrame,其源代码设置为http://example2.com.当我运行bookmarklet时,它总是在http://example.com上运行,因为那是主页面.我想在另一个iFrame上运行它.

当我尝试与iFrame交互时(例如,通过将其源属性更改为javascript:alert('test')),Chrome会显示以下错误:

不安全的JavaScript尝试与URL访问框架http://example.com从框架与URL http://example2.com.域,协议和端口必须匹配.

我尝试将书签拖放到框架中,但它说:

无法加载资源

有没有办法让我在Chrome中使用书签与iFrame交互?

javascript security iframe bookmarklet

16
推荐指数
1
解决办法
4573
查看次数

编程语言中符号的频率

我正在寻找某种参考,它显示了流行编程语言的符号频率.我正在尝试为编程设计最佳的键盘布局.

如果没有这样的参考,我不介意创建一个简单的实用程序来解决这个问题.但是,我需要就每种语言分析哪些文件提出建议.

我可以预见的一个问题是我得到了一些Objective-c代码,如果它是一个没有对象的简单程序,那么[]键的频率远远低于普通的objective-c文件.所以,我会说其中一个指导原则是示例代码应该代表一个普通文件,并使用该语言最常用的功能.

最初我认为我应该使用不同的语言编写相同的代码,但我不确定这是不是一个好主意,因为某些语言的用途不同于其他语言.

keyboard-layout

15
推荐指数
3
解决办法
2978
查看次数

无需重新排序控制即可重新排序UITableView

我需要用户能够通过这种方式重新排序UITableView:他触摸一个单元格预定的时间段(例如1秒),然后他可以将其拖放到其他单元格上.

我知道如何使用手势识别器实现"长触摸"检测,但是在不使用重新排序控件的情况下实现拖放功能的最佳方法是什么(用户应该从单元格中的任何位置拖动单元格,而不仅仅是重新排序控制)?

cocoa-touch drag-and-drop uitableview ios

15
推荐指数
2
解决办法
5814
查看次数

如何以编程方式自动将标签的preferredMaxLayoutWidth设置为自动?

当我尝试在故事板中将标签的首选宽度设置自动时,我收到以下错误:

属性不可用:自动首选最大布局宽度在8.0之前的iOS版本上不可用

由于我需要我的布局适用于iOS 7和8,我计划执行以下操作:

  1. 在故事板中将值设置为Explicit.
  2. 在iOS 7上,以编程方式将值设置为显式的计算宽度.
  3. 在iOS 8上,以编程方式将值设置为自动.

1和2很容易.我该如何做第3步?我可以设置它吗?


这是我到目前为止所尝试的...

如果您在故事板上将值设置为自动并进行检查preferredMaxLayoutWidth,您将看到它是0.

但是,尝试将其设置为0,即使它表示已经为0,也不能正常工作(例如标签保持为单行).例如,我尝试在故事板中将值设置为自动,然后viewDidLoad运行以下命令:

self.label.preferredMaxLayoutWidth = self.label.preferredMaxLayoutWidth;
Run Code Online (Sandbox Code Playgroud)

当我不运行上面的代码时,标签的大小正确.但是,当我运行上面的代码(它什么也不做)时,它仍然是一行(不良行为).


UILabel的头文件说:

// Support for constraint-based layout (auto layout)
// If nonzero, this is used when determining -intrinsicContentSize for multiline labels
@property(nonatomic) CGFloat preferredMaxLayoutWidth NS_AVAILABLE_IOS(6_0);
Run Code Online (Sandbox Code Playgroud)

至于常数,我找不到任何东西.我能想到的最接近的常数是什么UITableViewAutomaticDimension,哪个不起作用.

这是故事板的样子......

自动布局宽度:

<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="1000" text="Foo" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Bis-iG-g4l">
    <rect key="frame" x="20" y="116" width="560" height="21"/>
    <fontDescription …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c uilabel ios autolayout

15
推荐指数
1
解决办法
8692
查看次数

你怎么看到XCUIElement树?

背景:

我正在尝试使用XCode GM在iOS 9.0中进行ui级别测试.

题:

在XCode GM中是否有一个命令可以让你看到可访问元素及其关系的"树"?类似于Appium中的'page'命令?

理想情况下,我可以在调试器中运行一个命令,它会给我一个可供选择/操作的元素列表.目前,您可以在单个XCUIElement上使用debugDescription,但只提供该元素的信息.

testing xcode ios appium xcode-ui-testing

15
推荐指数
3
解决办法
8078
查看次数

在UI测试中无法访问字符串本地化(Xcode 7)

所以我有一种情况,我有一些经验证的textFields.我正在尝试运行UI测试,当他们失败时,他们会收到警告,弹出一条错误消息(可能是一个不同的消息,取决于哪些字段无效以及以何种方式).

我想测试一下,不仅会出现警报,而且会显示正确的消息.我遇到的问题是我需要获取本地化的文本进行比较(如果我用英语以外的其他语言运行测试),但是当我在UITest中调用NSLocalizedString时它无法收集正确的本地化字符串(只是返回关键[默认])

我已经尝试将localizeable.strings文件添加到UITest目标,但无济于事.有谁知道这是否可能?

编辑作为旁注:我也试过设置一个辅助功能标识符UIAlertView但是当我用该辅助功能标识符查询它不存在时,我只能使用看起来倒退的警报标题来查询它.

ios xcode7 xcode-ui-testing

15
推荐指数
2
解决办法
3480
查看次数

.NET Regex点字符匹配回车符?

我用过的每一种正则表达式都一直都有"." 字符匹配除了新行(\ r或\n)之外的所有内容...当然,除非您启用单行标志.

所以,当我尝试以下C#代码时,我感到震惊:

Regex rgx = new Regex(".");
if (rgx.Match("\r\n").Success)
  MessageBox.Show("There is something rotten in the state of Redmond!");
Run Code Online (Sandbox Code Playgroud)

它显示了这个消息.为了确保我不会疯狂,我尝试了以下JavaScript代码:

if (/./.test("\r\n"))
  alert("Something's wrong with JavaScript too.");
Run Code Online (Sandbox Code Playgroud)

JavaScript没有显示消息,这意味着它的工作正常.

显然,"." .NET中的字符与"\ r"字符匹配.我查看了 文档,看看是否有任何关于它的内容:

通配符:匹配除\n之外的任何单个字符.

哇...因为一个正则表达式的味道什么时候点匹配一个回车?您会认为.NET的行为与其他所有正则表达式的行为一样......特别是因为它在Windows环境中使用"\ r \n"作为行分隔符.

是否有任何标志/设置可以让它像其他Regex口味一样工作?是否有任何其他解决方案不涉及替换所有.字符[^\r\n]

.net regex

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

抓取并刮擦iTunes App Store

我注意到iTunes预览允许您通过http://协议抓取和抓取页面.但是,许多链接都试图在iTunes而不是浏览器中打开.例如,当您转到iBooks页面时,它会立即尝试打开带有itms://协议的URL .

是否还有其他方法可以抓取App Store或这是唯一的方法吗?

可以在itms://协议链接本身以某种方式抓取?

language-agnostic screen-scraping itunes web-crawler

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

如何检查2个jQuery选择器是否指向相同的元素?

如果我尝试这样的事情:

$(".foo") === $(".foo") // = false
Run Code Online (Sandbox Code Playgroud)

......我弄错了.如果我改为尝试此查询,

$(".foo").get(0) === $(".foo").get(0) // = true
Run Code Online (Sandbox Code Playgroud)

......我明白了.

那是因为:

{a:myObject} !== {a:myObject};
[myObject]   !== [myObject];
myObject     === myObject;
Run Code Online (Sandbox Code Playgroud)

我想知道是否有任何简洁的方法来测试这种相等性,最好是内置到jQuery中.我写的第二种方法只有在最多只有一个匹配的元素时才能正常工作.foo.该解决方案适用于任何数量的元素.

显然我不想只检查,".foo" === ".foo"因为我使用的实际选择更复杂.我只是为这个例子简化了它们.(例如,我可能想检查$(this)是否选择了相同的东西$(".foo").)

javascript jquery equality jquery-selectors

14
推荐指数
2
解决办法
4102
查看次数

XCTestCase - iOS UI测试 - 处理具有许多单元格的UITableViews

我正在尝试使用(XCode 7)UI XCTestCase测试用例,我只是偶然发现了一个UIView的问题,其中我有一个带有许多单元格(4000+)的UITableView.

当应用程序正常运行时,仅呈现可见单元格,并且根本没有性能问题.但是,如果我在录制XCTestCase的上下文中运行应用程序并导航到此屏幕,则模拟器会冻结,显然是因为每个单个单元格都被渲染为好像是可见的.如果我尝试手动编写导航脚本并运行XCTestCase,则测试用例在导航到此屏幕后立即失败,退出时出现"UI测试失败 - 无法获得刷新快照",显然是因为所有单元格都在渲染,这样做没有及时完成.

我认为这与测试框架构建显示的屏幕的整个元模型这一事实有关,将4000多个单元格中的每一个添加到视图树层次结构中.

我尝试添加一个期望,希望这会给测试容器足够的时间来完成渲染所有单元格,但这不起作用.

这有解决方法吗?是否有可能跳过构建UI树层次结构的某些部分?我的目标是能够为这个屏幕编写UI测试.

uitableview ios xctest xcode-ui-testing xctestcase

14
推荐指数
2
解决办法
2033
查看次数