来自另一个站点的内容的 jQuery 对话框

2024-02-24

我正在使用 jQuery,它可爱又简单dialog命令在某些嵌入的第 3 方内容前面打开一个对话框。该嵌入内容可以是任何网站的页面。我CAN让它在某些网站(雅虎,谷歌)上工作,但我CANNOT让它在其他网站(MSN、Johnlewis、FT)上运行。

我已经从下面的代码中删除了尽可能多的内容,以给出问题的概要 - 显示的代码工作正常并且对话框确实显示。但是,注释掉 YAHOO 行并取消注释 MSN 行,则该对话框将不会显示!

<head>
    <script src="http://code.jquery.com/jquery-latest.js"></script>
    <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
    <style>
        .ui-widget-header { border: 1px solid #aaaaaa; background: #1f84f5 url(images/ui-bg_highlight-hard_75_1f84f5_1x100.png) 50% 50% repeat-x; color: #ffffff; font-weight: bold; font-size: 20pt; }
        .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222;  font-size: 20pt;}
    </style>
        <script>
            $(document).ready(function() {
                $( "#thedialog" ).dialog( "destroy" );
                $( "#thedialog" ).dialog({height:400, width:600, modal: true,
                    buttons: {Cancel: function() {$( this ).dialog( "close" );}}
                });
            });
    </script>
</head>
<body>
    <?php 
        // WORKING - these pages DO launch a dialog:
        $targetlink = 'http://www.yahoo.com';
        // $targetlink = 'http://www.bbc.co.uk';
        // $targetlink = 'http://www.google.com';

        // NOT WORKING - these pages do NOT launch a dialog:
        // $targetlink = 'http://www.msn.com';
        // $targetlink = 'http://www.johnlewis.com';
        // $targetlink = 'http://www.ft.com';

        echo file_get_contents($targetlink);
    ?>
    <div id="thedialog" title="Simple dialog box" style="display:none">My girl lollipop</div>
</body>

我唯一能想到的是,它一定是某个非工作网站上的某个东西与我的代码冲突 - 我已经尝试了一切来错误捕获问题,但找不到导致它的原因。

有人可以帮我吗?

NOTES:- (1) 我知道所示的示例不需要 PHP,但需要更完整的版本 确实如此(我只是剥离了大部分 PHP 代码以保留这个示例 小的)。 - (2) 我在完整版本页面的其他地方使用了 JQuery 所以理想情况下我想继续使用 JQuery,而不是引入替代框架/方法。


尽管我无法重现这个问题,但特里·塞德勒的回答是有效的。您将遇到与已有对话框和 JQuery 的站点发生冲突的情况。

你有两种方法来解决这个问题(我不认为“无冲突”方法会起作用,因为你也在使用 UI 插件)

  1. 检查是否$被定义并且$.dialog被定义为。如果已定义,则使用站点拥有的内容,否则使用动态加载 http://unixpapa.com/js/dyna.html

  2. 使用原始 JS 添加处理程序onload对于页面/窗口,并运行一个函数。在此函数中,您应该粘贴 JQuery 和 JQuery-UI 的代码。此方法使用函数的作用域来避免命名空间问题。

为了让方法2更清楚,想象一下下面的JS代码

function printMe() { alert("this will print me"); }

function printMeToo(){

     function printMe(){ alert("this will print me too"); }
     printMe(); 

}

printMeToo();

这段代码应该提醒“这也会打印我” - 并运行printMe页面上的其他任何地方都会提醒“这将打印我”。这样您就不会损害正在加载的页面(这也是您应该考虑的事情),并且它们不会对您产生影响。

它会是什么样子? 为了了解如何添加原始 JS onload 处理程序,您可以查看这个计算器问题 https://stackoverflow.com/questions/4558325/adding-multiple-onload-handlers。 可以说它是这样的document.addEventListener( 'onload', function () { ... /* important stuff */ });

重要的是这个函数会是什么样子?这就是预期的结构

function(){ /* important stuff function */ 

       // paste here JQuery definition code (copy paste into here... ) make sure to use the minified code!
       (function(a,b){function G(a) ... {return p})})(window);

      // paste other plugins code as well. dialog + ... 

      .... 


      // now your code should be here, exactly like you posted it untouched

      $("myelement"); // this uses MY JQuery version, and my JQuery-UI version and my plugins without the possibility of an override. The site cannot override my code, and I cannot override the site's code. 

} /* end of really important stuff function here */ 

想看看这个方法的实际运行情况吗? 我用以下方式保护我的网站蒴果 http://www.incapsula.com/- 所以他们在我的网站上显示了他们的印章(有点像你的对话框) - 看到右下角的浮动 div 了吗?他们也使用 JQuery 和其他东西,就像我在这里指定的那样。

顺便说一句 - 关于 CSS - 你可能会遇到同样的问题。例如,您引用类 .bottom - 其他站点可能有自己的确切类和 CSS。确保用一个非常唯一的 ID 包装整个对话框代码(例如gjkelrgjkewrl849603856903ID- 并用它启动所有 CSS 选择器以避免冲突)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自另一个站点的内容的 jQuery 对话框 的相关文章

  • PHP,文本从数据库中回显,没有换行,全部一体

    我的数据库中有一个长文本 从 php mayadmin 来看它看起来很好 但是当我将它回显到页面时 它会丢失所有格式 即没有新行 全部都在一个块中 有任何想法吗 Thanks 可能是因为换行符是 n 并且 html 想要 br 所以使用nl
  • 使用 jQuery 查找带有文本的元素

    我想创建一个包含文本字符串的 div 中所有 html 元素的数组 例如 p some string p 我不想获取字符串 我希望数组项成为元素 在示例中 将是 p 节点 我事先不知道字符串是什么 所以我无法查找匹配的字符串值 我也不希望空
  • Mongodb $push 嵌套数组

    我想向我的嵌套数组添加新数据 我的文档是 username erkin email email protected cdn cgi l email protection password b playlists id 58 name asd
  • 返回上一页

    我正在使用表格来 评价 页面 此表单将数据 发布 到其他地方的 php 脚本 我只是想在处理表单后显示一个链接 这将使用户返回到上一页 我可以在 php 脚本中使用 javascript 来执行此操作吗 GF 您可以使用链接来调用histo
  • 将自定义参数传递给 Symfony2 中的自定义 ValidationConstraint

    我正在 Symfony2 中创建一个表单 表格只包含一个book字段允许用户在列表中进行选择Books实体 我需要检查是否选择了Book属于Author我的控制器里有 public class MyFormType extends Abst
  • PHP URL 验证

    我知道有无数的线程问这个问题 但我一直无法找到一个可以帮助我解决这个问题的线程 我基本上试图解析大约 10 000 000 个 URL 的列表 确保它们根据以下标准有效 然后获取根域 URL 此列表包含您能想象到的几乎所有内容 包括类似的内
  • 使用 Flot、html、PHP 和 MySql 查询绘制多个图表

    我正在尝试使用 Flot html PHP 和 MySql 查询绘制多个图表 但我陷入了困境 因为我找不到在同一个 html 页面中绘制多个 flot 的方法 为简单起见 在数据库 test db3 映像中包含以下字段 表1 用户名 发送邮
  • 在自动完成上添加 jQuery 延迟

    我正在尝试为应用程序创建 jQuery 自动完成 search input on keyup function search this val autocomplete div autocomplete get ajax search se
  • 如何编写可以补偿拼写错误数据的 MySQL 搜索?

    有没有什么方法可以编写一个 MySQL 搜索来弥补用户在拼写等方面的错误 作为随机示例 有人可能会输入 电子邮件受保护 cdn cgi l email protection代替 电子邮件受保护 cdn cgi l email protect
  • 如何在 jQuery 中将标题转换为 URL slug?

    我正在 CodeIgniter 中开发一个应用程序 我试图在表单上创建一个字段来动态生成URL slug 我想做的是删除标点符号 将其转换为小写 然后用连字符替换空格 例如 Shane s Rib Shack 将变成 shanes rib
  • 仅在 Chrome 上我收到此错误:Uncaught TypeError: Illegal constructor [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 当我在 Chrome 上加载 jQuery 时 我会收到此错误 Uncaught TypeError Illegal constr
  • Pjax动画

    我终于让 pjax 工作了 但我还有另一个问题 如何添加一些 jquery 动画 如淡出 幻灯片旧内容和淡入 幻灯片新内容 默认情况下 pjax 只是更改内容 没有任何好看的效果 任何帮助将非常感激 此致 基本上 你有一堆事件 https
  • 通过 SOAP 的 Gmt php 或 UTC C# 等效项

    is C DateTime UtcNow和 PHPdate c 是等价的 我怀疑 因为当我肥皂时 我得到了 C
  • 修改 Twitter 帖子上可编辑 Div 的内容

    我正在编写一个 chrome 扩展 它可以帮助用户在 Twitter 上输入内容 当在 twitter 上写推文时 twitter 会打开一个可编辑的 div 容器 当用户输入内容时 twitter 大概正在使用某些网络框架 会生成子 di
  • 如何在具有相同值的下拉菜单上触发 jQuery 更改事件

    即使用户选择相同的值 如何每次都触发 jQuery 更改事件 我需要刷新效果 例如如果用户选择Lawyer它会发出警报hello然后用户再次选择Lawyer从下拉菜单中 它应该发出警报hello 我怎样才能实现它 以下是代码 jQuery
  • Apache 2.4.9 在启用 ssl 模块并设置 ssl 证书后失败

    Apache 在尝试设置 ssl 证书后抛出以下错误 ssl emerg pid 30907 AH02572 Failed to configure at least one certificate and key for localhos
  • 使用 PHP 创建图表并导出为 PDF

    我正在寻找有关使用 PHP 创建图表的建议 我还希望能够将这些图表导出到 PDF 文档 我目前正在使用谷歌图表 但我不喜欢将我的所有信息发送到谷歌的想法 我更喜欢自己的托管解决方案 我见过很多 Flash 解决方案 但我不知道有什么方法可以
  • 如何使用 jQuery 单击特定链接时打开引导导航选项卡的特定选项卡?

    我是 jquery 和 bootstrap 的新手 所以请考虑我的错误 我已经创建了一个用于登录和注册的 bootstrap 模式 它包含两个导航选项卡 称为登录和注册 我有两个按钮可以弹出相同的模态窗口 但在模态窗口内显示不同的选项卡 每
  • 如何检查号码是否是巴基斯坦用户的手机号码而不是固定电话号码

    我所做的是从开头删除 92 或 0092 并使用以下代码检查它是否是巴基斯坦人的有效手机号码 if preg match 3 0 4 0 9 number 1 Pakistani mobile number else not a pakis
  • 使用jquery调用AS3外部接口

    我正在使用ExternalInterface 调用嵌入在html 页面中的Flash 应用程序 以下代码工作正常 我正在使用按钮进行测试 document ready function button click function var a

随机推荐

  • 使用 Google 脚本永久删除我的电子邮件的脚本

    Gmail Users Messages remove userId id 是如何工作的 电子邮件的 ID 是什么 永久删除电子邮件的正确功能是什么 就我而言 我想立即明确地删除所有已发送的电子邮件 这是我从某人那里获取的一些代码 只是带有
  • Python 和“re”

    我在 python 中关于 Regex 的教程解释了如何在 python 中使用 re 模块 我想从 A 标签中获取 URL 因此知道 Regex 我编写了正确的表达式 并在我选择的正则表达式测试应用程序中对其进行了测试并确保它工作了 当放
  • 如何在 OSX Catalina (10.15) 中使用 Wireshark 捕获 USB 流量

    我正在尝试让 Wireshark USB 捕获工作 显然 Catalina 之前的技巧就是调出界面 以便 Wireshark 可以看到它 https forums developer apple com thread 95380 https
  • ggplot2 具有多个参数的绘图函数

    我得到了这个功能 change lt function score d k p k score 1 1 k d p 我想在一个图中绘制该函数对于一系列参数 d 和 p 的所有结果 在 r 基数中 就是这样 parameters lt c 1
  • Django:如何重定向到表单起源的页面

    在我的 Django 应用程序中 我有多个页面显示一个链接 该链接加载一个显示表单的新页面 提交表单后 重定向到访问该表单的原始页面的最简洁方法是什么 原始页面 gt 表单页面 gt 原始页面 使用下一个变量似乎不太优雅 因为我必须将其设置
  • 证书基本约束的路径长度

    对于 CA 类型的基本约束 路径长度为 0 和 None 是否相同 澄清一下 路径长度为 0 是否意味着 CA 不能颁发证书 而路径长度为 none 是否意味着它可以颁发无限数量的证书 取自RFC 5280 https www rfc ed
  • 为什么人们在 PHP 框架中使用单例

    好吧 伙计们 我很难理解为什么需要单例 让我们举一个真实的例子 我有一个 CMS 框架我需要一个记录一些信息的类 让我们继续使用 PHP Example class Logger private logs array public func
  • 插入特定行数

    我正在尝试插入特定数量的行 现在我正在使用下面的代码插入 4 行 我正在尝试编写一行代码 该代码将根据特定单元格中的数字插入特定数字或行 例如 如果我想插入 4 行 并且单元格 A2 是我可以更改要添加的行数的单元格 那么我将使用什么代码根
  • ld:找不到 -lgcc_s.10.5 Xcode 的库

    ld library not found for lgcc s 10 5 collect2 ld returned 1 exit status Command Developer Platforms iPhoneSimulator plat
  • 为什么消费者在使用 Java 客户端 API 在 DC/OS 上消费来自 Kafka 的消息时会挂起?

    我在 AWS 上的 DC OS Mesos 集群上安装了 Kafka 启用三个代理并创建一个名为 topic1 的主题 dcos kafka topic create topic1 partitions 3 replication 3 然后
  • 从 ES6 map() 函数返回多个值

    假设我有这样的事情 let values 1 2 3 4 let newValues values map v gt return v v console log newValues 1 4 9 16 非常简单 现在 如果我想为每个对象返回
  • 如何使用 useEffect 设置参数并避免无限渲染?

    我在用着react navigation我有一个动态标题 所以我使用setParams并将其放在标题中 const MyComponent navigation gt useEffect gt const setParams state n
  • 为什么属性名称不能是 Python 关键字?

    Python 中对属性访问的语法有限制 至少在 CPython 2 7 2 实现中 gt gt gt class C object pass gt gt gt o C gt gt gt o x 123 Works gt gt gt o if
  • 如何对列表中第一个值相同的元组求和?

    我有一个元组形式的股票和头寸列表 正值表示买入 负值表示卖出 例子 p AAPL 50 AAPL 50 RY 100 RY 43 如何对股票头寸求和以获得当前持有量 result AAPL 0 RY 57 这个怎么样 您可以阅读有关coll
  • 如何在pygame中创建子弹? [复制]

    这个问题在这里已经有答案了 我知道有几个关于此的主题 但我仍然不知道如何让我的船发射子弹 我想添加到我的 MOUSEBUTTONDOWN 中 当音效播放时 从船上发射子弹 谢谢您的帮助 import sys pygame pygame mi
  • Resharper:文件头文本不会自动用于新文件

    我正在使用 VS2010 Resharper 8 0 1 StyleCop 4 7 45 我在 resharper 选项中定义了一个文件头文本 并 错误地 假设它将在重构时使用 使用 将类移动到新文件以匹配文件名 功能 这也不使用可以修改的
  • Java InputStream.read(byte[], int, int) 方法,如何阻塞直到读取了确切的字节数

    我正在编写一个简单的客户端 服务器网络应用程序来发送和接收固定尺寸通过 TCP 套接字发送消息 到目前为止 我一直在使用getInputStream and getOutputStream 的方法Socket类来获取流 然后调用read b
  • 反应本机儿童父母沟通

    使用 pass 道具 父子沟通似乎没有问题 mainpage ios js代码 var OtherPage require otherpage
  • SDWebImage 是否支持“快速滚动时不滚动”(略读)以进行延迟加载?

    进行延迟加载时 UICollectionView的表 为了获得正确的结果 当用户在集合上快速滚动时 您不应该开始下载 因此 想象一下有 200 个面板的垂直卷轴 每个面板都有一个图像 屏幕上一次出现四到五个 首次加载时 应开始加载前 4 个
  • 来自另一个站点的内容的 jQuery 对话框

    我正在使用 jQuery 它可爱又简单dialog命令在某些嵌入的第 3 方内容前面打开一个对话框 该嵌入内容可以是任何网站的页面 我CAN让它在某些网站 雅虎 谷歌 上工作 但我CANNOT让它在其他网站 MSN Johnlewis FT