我们有丰富的页面,我们有一个带有动态内容的小块.直到最近,一切都很好.
现在Chrome浏览器以某种方式"捕获"页面上的一个div并向下滚动整个内容.用文字解释很难,但更容易证明.
这是测试页面.只需在Chrome中打开它,然后向下滚动一点,这样其中一个蓝色框就会出现在视口的最顶部边框上.当蓝色框保持在同一位置时,您将看到所有内容(数字1,2,3 ..)自动滚动.
在这个简单的例子中它可能看起来合乎逻辑,但是考虑到动态块只是页面上许多块中的一个,并且没有理由滚动整个内容,因为块内部发生了变化.
<html>
<body>
<div id="x" style="border:solid 1px red;width:200;height:200">
</div>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>
1<br>2<br>3<br>4<br>5<br>6<br>7<br>8<br>9<br>10<br>
11<br>12<br>13<br>14<br>15<br>16<br>17<br>18<br>19<br>20<br>
<script>
setInterval(function () {
var e = document.createElement('div');
e.setAttribute("style", "border:solid 2px blue;width:100px;height:20px");
var x = document.getElementById('x');
x.insertBefore(e, x.childNodes.length?x.childNodes[0]:null);
}, 1000);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我们本周刚发现这个Chrome奇怪的行为.该代码在过去的6个月中运行良好,所以我认为这是Chrome制作的新功能.所有其他浏览器工作正常.
==更新==
使用Chrome(我有最新版本56.0.2924.87(64位))到http://www.thefreedictionary.com/并向下滚动,直到"实时搜索"(带有移动文字的框)出现在浏览器的最顶部.您将体验到整个页面开始移动而不是正常行为.
当我点击底部应用栏中的图标时,它会保持打开状态.我点击按钮时需要关闭它.我怎样才能做到这一点?
我正在使用C#,XAML.
在iOS 7中,UISearchbar占位符居中对齐并覆盖书签按钮,直到未选中搜索栏:

选择后,它看起来像预期的那样:

我需要它一直看起来这样.谢谢.
我无法在Visual Studio 2017中为UWP应用程序(C#)启用Live Visual Tree.这个工具正在开发VS2015,但在VS2017中从未为我工作过.它对我的WPF项目没有任何问题.
我收到以下错误消息Live Visual Tree:
UI调试需要最新版本的SDK和通用Windows应用程序开发工具.确保已安装这些工具以启用UI调试.
我尝试了什么:
Enable UI Debugging Tools for XAML已签入Options/Debugging.Windows 10 SDK (10.0.15063.0) for UWP: C#, VB, JS我无法在网络或Stack Overflow中找到有关该问题的任何信息(与VS 2017相关,尽管在VS2015中找到了一些信息).请帮忙.
我们的 iOS (swift) 本机应用程序与OpenVidu实现(在后台使用GoogleWebRTC )存在挂起问题(应用程序由于主线程锁定而冻结)。所需具体条件:需要加入现有房间且至少有 8 名参与者已经在直播。如果参与者有 6 个,则这种情况发生的频率会较低,并且在少于 6 个参与者的情况下几乎不会出现这种情况。如果参与者逐一加入,只有当您加入房间且所有其他参与者都已在进行流式传输时,它才不会挂起。这表明了问题的并发性质。
GoogleWebRTC 挂起setRemoteDescription:
func setRemoteDescription(sdpAnswer: String) {
let sessionDescription: RTCSessionDescription = RTCSessionDescription(type: RTCSdpType.answer, sdp: sdpAnswer)
self.peerConnection!.setRemoteDescription(sessionDescription, completionHandler: {(error) in
print("Local Peer Remote Description set: " + error.debugDescription)
})
}
Run Code Online (Sandbox Code Playgroud)
正如您在上面的屏幕截图中看到的,主线程挂在 上__psynch_cvwait。似乎没有任何其他线程被锁定。锁永远不会释放,导致应用程序完全冻结。
在尝试解决这个问题时,我尝试了以下方法:
我将 OpenVidu 信令服务器处理(RPC 协议)从主线程移至单独的线程中。这只会导致锁定现在发生在我创建的单独线程之一中。现在它不会阻止 UI,但会阻止 OV 信号。问题仍然存在。
我添加了锁来同步(一一)处理每个信令事件(参与者加入事件、发布视频等) 。这也无济于事(它实际上使情况变得更糟)。
我没有使用 Cocoapods 中的 GoogleWebRTC v. 1.1.31999,而是下载了最新的 GoogleWebRTC 源代码,在发布配置中构建它们并包含在我的项目中。这无助于解决问题。
任何建议/意见将不胜感激。谢谢!
编辑1:
和signaling_threadareworker_thread都在同一种锁中等待某些东西。在锁定时,它们都不会执行我的任何代码。
我还尝试在 …
有没有办法选择UISearchBar中的所有文本?我尝试了[searchBar selectALL:],但它抛出了信号(无法识别的选择器).
我想允许用户更改以前的搜索文本.在某个时候,当用户刚刚开始输入新请求时,旧的请求应该被解雇.如何实现它的标准方法 - 在文本开始编辑时选择所有文本.
我有简单的ListView与ArrayAdapter,它工作得很好.问题始于RTL语言(在本例中为阿拉伯语).
当你第一次打开它时,一切看起来都很好:
但在向下滚动并向上滚动后,某些项目似乎呈现错误:
代码很简单.请注意,如果我不重复查看,而是每次无条件地对其进行充气(请参阅下面的注释行),问题是GONE.但这显然是不对的,我想重新使用项目以获得更好的性能和流畅的滚动.
还请注意我ListView在应用程序中有多个s,并且所有这些都在阿拉伯语中显示这种不正确的呈现.对于这个问题,当我为每个列表项设置文本和图标时,我选择了最简单的情况.
请指教.我执行的代码部分ArrayAdapter:
public class PagesListAdapter extends ArrayAdapter<IPageRef> {
...
public View getView(int position, View convertView, @NonNull ViewGroup parent) {
final IPageRef b = getItem(position);
View row = convertView == null ? mInflater.inflate(R.layout.lang_item, parent, false) : convertView;
//View row = mInflater.inflate(R.layout.wordlist_item, parent, false);
TextView title = row.findViewById(R.id.title);
ImageView img = row.findViewById(R.id.img);
... // (setting the title & img properties)
return row;
}
}
Run Code Online (Sandbox Code Playgroud)
lang_item.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" …Run Code Online (Sandbox Code Playgroud) 我正在学习如何实施Facebook Fulfillment流程.我无法理解使用request_id(步骤1和2).我的想法是我的服务器生成request_id,稍后当应用程序从Facebook获得编码响应时,将该响应中的详细信息与我服务器上存储的详细信息进行比较(使用request_id作为密钥).
验证的目的是什么?
它说:
验证订单的最安全方法是使用JavaScript回调中的signed_request参数,因为它已使用App Secret进行编码,并且无法由客户端操纵.
那么,如果我们相信这些数据并且无法操纵,为什么我们需要进行额外的检查呢?另一方面,如果它可以被操纵,那么这个措施如何防止简单地将相同的请求传递给我的服务器并使用返回request_id作为创建操作的一部分signed_request.
我根据这篇文章使用Android + AdMob实施了欧盟用户同意政策。
问题:在真实设备(使用 HashedId)或模拟器上UserMessagingPlatform总是失败onConsentInfoUpdateFailure。
错误:来自服务器的无效响应:无法读取发布者的帐户配置;稍后再试。
我启用了调试设置:
ConsentDebugSettings debugSettings = new ConsentDebugSettings.Builder(activity)
.setDebugGeography(ConsentDebugSettings.DebugGeography.DEBUG_GEOGRAPHY_EEA)
//.addTestDeviceHashedId("CC3EBF623628DAA1E3AD2124AE690FBD")
.build();
ConsentRequestParameters params = new ConsentRequestParameters.Builder()
.setTagForUnderAgeOfConsent(false)
.setConsentDebugSettings(debugSettings)
.build();
Run Code Online (Sandbox Code Playgroud)
请让我知道为什么它失败?我应该考虑使用旧版吗?
android ×2
c# ×2
objective-c ×2
uisearchbar ×2
admob ×1
appbar ×1
ios ×1
ios7 ×1
iphone ×1
javascript ×1
listview ×1
openvidu ×1
pushsharp ×1
selectall ×1
swift ×1
visual-tree ×1
webrtc ×1
webrtc-ios ×1
windows-8 ×1
xaml ×1