我想使用jQuery将JavaScript代码段添加到页面中的现有iFrame中.我有以下代码......
码:
content = "<script>" + js_code + "</script>";
$('#iframe_id').contents().find('body').append(content);
Run Code Online (Sandbox Code Playgroud)
但不知何故,这是行不通的.我检查了一些现有/相关的答案,似乎jQuery不太认可脚本标签为...脚本标签.iFrame位于相同的域/相同的端口/相同的主机中,因此没有关于跨站点脚本等的问题.我该如何解决这个问题?
我想使用jQuery/AJAX将一些值从JavaScript传递给PHP.我有以下"简化"代码,不知道我做错了什么.StackOverflow中似乎有很多类似的问题/答案,但它们都没有真正帮助.
HTML:
<div>
<a href="#" id="text-id">Send text</a>
<textarea id="source1" name="source1" rows="5" cols="20"></textarea>
<textarea id="source2" name="source2" rows="5" cols="20"></textarea>
</div>
Run Code Online (Sandbox Code Playgroud)
JAVASCRIPT:
$("#text-id").click(function() {
$.ajax({
type: 'post',
url: 'text.php',
data: {source1: "some text", source2: "some text 2"}
});
});
Run Code Online (Sandbox Code Playgroud)
PHP(text.php):
<?php
$src1= $_POST['source1'];
$src2= $_POST['source2'];
echo $src1;
echo $src2;
?>
Run Code Online (Sandbox Code Playgroud)
问题:什么都没发生......没有错误......没什么.我没有看到'echo1'和'source2'的值出现在PHP echo语句中.
我在jsBin中有以下代码:http://jsbin.com/iRoROvu/1/edit
它基本上在iframe中有一个锚点.如果您点击该链接,您会看到Chrome中没有任何操作,但在Firefox中它只是空白.
这里是jsFiddle中的相同代码:http: //jsfiddle.net/LbNwd/
JavaScript的:
var previewFrame = document.getElementById('preview');
var preview = previewFrame.contentDocument || previewFrame.contentWindow.document;
preview.open();
preview.write("Hello World!<br/><a href='#'>Click me!</a>");
preview.close();
Run Code Online (Sandbox Code Playgroud)
HTML:
<iframe id="preview"></iframe>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,如果你使用Firefox,它会在现有的iframe中创建另一个iframe ......并继续这样做...就像'Inception'.但相同的代码在Chrome中运行良好.
谁能告诉我为什么?
我想找到并替换HTML文档中的文本,比如在<title>标记内.例如,
var str = "<html><head><title>Just a title</title></head><body>Do nothing</body></html>";
var newTitle = "Updated title information";
Run Code Online (Sandbox Code Playgroud)
我尝试在jQuery中使用parseXML()(下面的示例),但它不起作用:
var doc= $($.parseXML(str));
doc.find('title').text(newTitle);
str=doc.text();
Run Code Online (Sandbox Code Playgroud)
是否有不同的方法来查找和替换HTML标记内的文本?正则表达式或可能正在使用replaceWith()或类似的东西?
以下代码只是HTML,CSS和JavaScript"注入"现有iFrame('iframe_id')的组合.虽然以下代码适用于Firefox,Chrome和Safari,但它在IE9中不起作用.我检查了一些相关的和现有的答案,其中大多数都与IE8或更早版本中的问题有关,这在这种情况下没有帮助.它与jQuery .attr()有关吗?IE9是否存在问题(如旧的IE版本)?如果是,我该如何解决?
$("#iframe_id").attr(
"src", "data:text/html;charset=utf-8," +
"<!DOCTYPE html>"+
"<html>"+
"<head>"+
"<style>"+
"/********** CSS stuff here **********/"+
"</style>"+
"</head>"+
"<body>"+
"<!--------- HTML stuff here ---------->"+
"<script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js\"><" + "/script>" +
"<script>"+
"/*********** jQuery stuff here *****/"+
"<" + "/script>"+
"</body>"+
"</html>"
);
Run Code Online (Sandbox Code Playgroud)
在IE9中,我得到典型的"网页无法显示..."错误.
我已经回顾了以下答案,但这没有帮助.
新手在这里改写Mod。我想在 URL 中传递两个 URL 参数,但采用更友好的格式。如果用户通过“example.com/blah123/sys”,在这种情况下,我应该能够提取 MySQL 记录“blah123”和模式类型“sys”。这是示例:
网址:
example.com/blah123/sys
Run Code Online (Sandbox Code Playgroud)
在 .htaccess 中,我有:
RewriteEngine On
RewriteRule ^([^/.]+)/?$ index.php?id=$1
Run Code Online (Sandbox Code Playgroud)
如果传递的 URL 是:“example.com/blah123”,而不是“example.com/blah123/sys”,则上述方法有效。
我尝试了以下方法,但它不起作用:
RewriteEngine On
RewriteRule ^([^/.]+)/?$/?$ index.php?id=$1?mode=$1
Run Code Online (Sandbox Code Playgroud)
我需要提取在第二个参数中传递的“模式”类型。因此,如果用户输入“example.com/blah123/sys”,我应该能够从 URL 中获取值“sys”。我怎样才能做到这一点?我想使用 PHP、MySql、.htacess。
更新:我目前的.htaccess:
# Use PHP 5.3
AddType application/x-httpd-php53 .php
RewriteEngine On
#RewriteRule ^([^/.]+)/?$ index.php?id=$1
RewriteRule ^([^/.]+)/([^/.]+)/?$ index.php?id=$1&mode=$2 [L,QSA]
Run Code Online (Sandbox Code Playgroud)